<SEC-DOCUMENT>0001654954-25-013088.txt : 20251114
<SEC-HEADER>0001654954-25-013088.hdr.sgml : 20251114
<ACCEPTANCE-DATETIME>20251114163049
ACCESSION NUMBER:		0001654954-25-013088
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		89
CONFORMED PERIOD OF REPORT:	20250930
FILED AS OF DATE:		20251114
DATE AS OF CHANGE:		20251114

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			TOMI Environmental Solutions, Inc.
		CENTRAL INDEX KEY:			0000314227
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL ORGANIC CHEMICALS [2860]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		EIN:				591947988
		STATE OF INCORPORATION:			FL
		FISCAL YEAR END:			1231

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

	BUSINESS ADDRESS:	
		STREET 1:		8430 SPIRES WAY
		CITY:			FREDERICK
		STATE:			MD
		ZIP:			21701
		BUSINESS PHONE:		8005251698

	MAIL ADDRESS:	
		STREET 1:		8430 SPIRES WAY
		CITY:			FREDERICK
		STATE:			MD
		ZIP:			21701

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	Ozone Man, Inc.
		DATE OF NAME CHANGE:	20071130

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	RPS GROUP INC
		DATE OF NAME CHANGE:	19940818

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	DAUPHIN INC
		DATE OF NAME CHANGE:	19940818
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>tomz_10q.htm
<DESCRIPTION>FORM 10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:currency="http://xbrl.sec.gov/currency/2025" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:country="http://xbrl.sec.gov/country/2025" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:ffd="http://xbrl.sec.gov/ffd/2025" xmlns:tomz="http://tomz.com/20250930"><head><title>tomz_10q.htm</title><!--Document Created by XBRLMaster--><meta http-equiv="Content-Type" content="text/html"/></head><body style="text-align:justify;font:10pt times new roman"><div style="display:none;text-align:justify;font:10pt times new roman;" id="XBRLDIV"><ix:header><ix:hidden><ix:nonNumeric name="dei:EntityCentralIndexKey" contextRef="From2025-01-01to2025-09-30" id="ixv-13309">0000314227</ix:nonNumeric><ix:nonNumeric name="dei:AmendmentFlag" contextRef="From2025-01-01to2025-09-30" format="ixt:booleanfalse" id="ixv-13310">false</ix:nonNumeric><ix:nonNumeric name="dei:CurrentFiscalYearEndDate" contextRef="From2025-01-01to2025-09-30" id="ixv-13311">--12-31</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalPeriodFocus" contextRef="From2025-01-01to2025-09-30" id="ixv-13312">Q3</ix:nonNumeric><ix:nonNumeric name="dei:DocumentFiscalYearFocus" contextRef="From2025-01-01to2025-09-30" id="ixv-13313">2025</ix:nonNumeric><ix:nonFraction name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2024-12-31" unitRef="USDPShares" decimals="INF" id="ixv-13314">0.01</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2024-12-31" unitRef="Shares" decimals="0" id="ixv-13315">250000000</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2025-09-30" unitRef="Shares" decimals="0" id="ixv-13316">20075205</ix:nonFraction><ix:nonFraction name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2024-12-31" unitRef="Shares" decimals="0" id="ixv-13317">20015205</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="USDPShares" decimals="INF" id="ixv-13318">0.01</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="USDPShares" decimals="INF" id="ixv-13319">1000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13320">1000000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13321">4000</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13322">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13323">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13324">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13325">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13326">63750</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13327">0</ix:nonFraction><ix:nonFraction name="us-gaap:PreferredStockSharesOutstanding" contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="Shares" decimals="0" id="ixv-13328">0</ix:nonFraction><ix:nonNumeric name="ecd:Rule10b51ArrAdoptedFlag" contextRef="From2025-01-01to2025-09-30" id="ixv-13329">false </ix:nonNumeric><ix:nonNumeric name="ecd:Rule10b51ArrTrmntdFlag" contextRef="From2025-01-01to2025-09-30" id="ixv-13330">false</ix:nonNumeric><ix:nonNumeric name="ecd:NonRule10b51ArrAdoptedFlag" contextRef="From2025-01-01to2025-09-30" id="ixv-13331">false</ix:nonNumeric><ix:nonNumeric name="ecd:NonRule10b51ArrTrmntdFlag" contextRef="From2025-01-01to2025-09-30" id="ixv-13332">false</ix:nonNumeric><ix:nonFraction name="tomz:AmortizationOfTenantImprovementAllowance" contextRef="From2024-07-01to2024-09-30" unitRef="USD" decimals="0" id="ixv-13333">9798</ix:nonFraction><ix:nonFraction name="tomz:AmortizationOfTenantImprovementAllowance" contextRef="From2025-01-01to2025-09-30" unitRef="USD" decimals="0" id="ixv-13334">29395</ix:nonFraction><ix:nonFraction name="tomz:CumulativeConvertiblePreferredStockStatedValue" contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember" unitRef="USD" decimals="0" id="ixv-13335">1000</ix:nonFraction></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="tomz-20250930.xsd"/></ix:references><ix:resources><xbrli:context id="From2025-01-01to2025-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-10-01</xbrli:startDate><xbrli:endDate>2025-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:NonEmployeeDirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-10-01</xbrli:startDate><xbrli:endDate>2025-10-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-11-01to2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityPurchaseAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-11-01</xbrli:startDate><xbrli:endDate>2025-11-05</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityPurchaseAgreementMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-11-05</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</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-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomersMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-12-31_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomersMember</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="From2025-01-01to2025-09-30_tomz_CommitteeChairpersonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:CommitteeChairpersonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-05-01to2025-05-30_tomz_MrVanstonMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tomz:MrVanstonMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-05-01</xbrli:startDate><xbrli:endDate>2025-05-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_ExecutiveAgreementsWithElissaJShaneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_us-gaap_SeriesBPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-05-31_tomz_MayTwentyTwentyFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-05-01</xbrli:startDate><xbrli:endDate>2024-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_MayTwentyTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_MayTwentyTwentyFourMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</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="From2025-01-01to2025-09-30_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeSevenPointZeroSixMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenPointZeroSixMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeFourPointFourZeroMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourPointFourZeroMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeOnePointNineThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointNineThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeOnePointOneTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointOneTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightZeroMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightZeroMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenPointZeroSixMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourPointFourZeroMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointNineThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointOneTwoMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightZeroMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</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="AsOf2024-12-31_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_us-gaap_StockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-11-30_tomz_JuneTwoThousandTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-11-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-07-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2023-10-01to2023-11-30_tomz_JuneTwoThousandTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2023-10-01to2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-01</xbrli:startDate><xbrli:endDate>2023-11-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2020-05-01to2020-05-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-05-01</xbrli:startDate><xbrli:endDate>2020-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2018-04-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-04-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2018-04-01to2018-04-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2018-04-01</xbrli:startDate><xbrli:endDate>2018-04-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_IntellectualPropertyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:IntellectualPropertyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_IntellectualPropertyMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:IntellectualPropertyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-07-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_EquityIncentivePlanOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_tomz_EquityIncentivePlanOneMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_PreferredAStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:PreferredAStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_ConvertibleDebenturesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:ConvertibleDebenturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_tomz_PreferredAStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:PreferredAStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_tomz_ConvertibleDebenturesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:ConvertibleDebenturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_tomz_OneVendorsMember_us-gaap_AccountsPayableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:OneVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_OneVendorsMember_us-gaap_AccountsPayableMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:OneVendorsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="From2024-07-01to2024-09-30_tomz_GeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_GeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_GeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_GeographicRegionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_UnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember></xbrli:segment></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="From2024-07-01to2024-09-30_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-07-01to2025-09-30_tomz_UnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_UnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_InternationalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_UnitedStatesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_ProductAndServiceRevenueMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_ProductAndServiceRevenueMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_ProductAndServiceRevenueMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_ProductAndServiceRevenueMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_ServiceAndTrainingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_ServiceAndTrainingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_ServiceAndTrainingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_ServiceAndTrainingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_tomz_SteraMistPRoductMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-07-01to2025-09-30_tomz_SteraMistPRoductMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_tomz_SteraMistPRoductMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_SteraMistPRoductMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_WarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_us-gaap_ConvertibleDebtMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_us-gaap_ConvertibleDebtMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember></xbrli:segment></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="From2024-07-01to2024-09-30_tomz_StockWarrantsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember></xbrli:segment></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="From2024-07-01to2024-09-30_tomz_PreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:PreferredStocksMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_tomz_StockOptionsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember></xbrli:segment></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="From2025-07-01to2025-09-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-06-30_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2025-01-01to2025-09-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></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="AsOf2024-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-06-30_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2023-12-31_us-gaap_RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2023-12-31_us-gaap_CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2023-12-31_tomz_SeriesAPreferredStocksMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="From2024-01-01to2024-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="From2024-07-01to2024-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="From2025-07-01to2025-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-07-01</xbrli:startDate><xbrli:endDate>2025-09-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2024-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-09-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-09-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="AsOf2025-11-12"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000314227</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-11-12</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="Shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="USDPShares"><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="Pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit></ix:resources></ix:header></div><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 5px solid;"/></tr><tr><td style="BORDER-BOTTOM: 2px solid;"/></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>UNITED STATES </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECURITIES AND EXCHANGE COMMISSION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Washington, D.C. 20549</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="font-size:18pt">FORM <ix:nonNumeric name="dei:DocumentType" contextRef="From2025-01-01to2025-09-30" id="ixv-14681">10-Q</ix:nonNumeric></span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(Mark One)</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric name="dei:DocumentQuarterlyReport" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:boolballotbox" id="ixv-14682">&#9746;</ix:nonNumeric>&#160;&#160;&#160;&#160; QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the quarterly period ended <ix:nonNumeric name="dei:DocumentPeriodEndDate" contextRef="From2025-01-01to2025-09-30" format="ixt:datemonthdayyearen" id="ixv-14683">September 30, 2025</ix:nonNumeric></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;or</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric name="dei:DocumentTransitionReport" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:boolballotbox" id="ixv-14684">&#9744;</ix:nonNumeric>&#160;&#160;&#160;&#160; TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">For the transition period from _____ to _____</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Commission File Number: <ix:nonNumeric name="dei:EntityFileNumber" contextRef="From2025-01-01to2025-09-30" id="ixv-14685">000-09908</ix:nonNumeric></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><img src="tomz_10qimg2.jpg" alt="tomz_10qimg2.jpg"/></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:60%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="font-size:18pt"><ix:nonNumeric name="dei:EntityRegistrantName" contextRef="From2025-01-01to2025-09-30" id="ixv-14686">TOMI ENVIRONMENTAL SOLUTIONS, INC.</ix:nonNumeric></span></strong></p></td></tr><tr style="height:15px"><td colspan="2" style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Exact name of registrant as specified in its charter)</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;width:45%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric name="dei:EntityIncorporationStateCountryCode" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:stateprovnameen" id="ixv-14687">Florida</ix:nonNumeric></strong></p></td><td style="width:10%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:45%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><ix:nonNumeric name="dei:EntityTaxIdentificationNumber" contextRef="From2025-01-01to2025-09-30" id="ixv-14688">59-1947988</ix:nonNumeric></strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(State or other jurisdiction of </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">incorporation or organization)</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(I.R.S. Employer </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">Identification No.)</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><span style="text-decoration:underline"><strong><ix:nonNumeric name="dei:EntityAddressAddressLine1" contextRef="From2025-01-01to2025-09-30" id="ixv-14689">8430 Spires Way</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressCityOrTown" contextRef="From2025-01-01to2025-09-30" id="ixv-14690">Frederick</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressStateOrProvince" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:stateprovnameen" id="ixv-14691">Maryland</ix:nonNumeric> <ix:nonNumeric name="dei:EntityAddressPostalZipCode" contextRef="From2025-01-01to2025-09-30" id="ixv-14692">21701</ix:nonNumeric></strong></span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Address of principal executive offices) (Zip Code)</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span style="text-decoration:underline">(<ix:nonNumeric name="dei:CityAreaCode" contextRef="From2025-01-01to2025-09-30" id="ixv-14693">800</ix:nonNumeric>) <ix:nonNumeric name="dei:LocalPhoneNumber" contextRef="From2025-01-01to2025-09-30" id="ixv-14694">525-1698</ix:nonNumeric></span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">(Registrant&#8217;s telephone number, including area code)</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">Securities registered pursuant to Section 12(b) of the Act:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Title of each class</strong></p></td><td style="width:5%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Trading</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Symbol(s)</strong></p></td><td style="width:5%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:30%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Name of each exchange on which registered</strong></p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric name="dei:Security12bTitle" contextRef="From2025-01-01to2025-09-30" id="ixv-14695">Common stock, par value $0.01 per share</ix:nonNumeric></p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric name="dei:TradingSymbol" contextRef="From2025-01-01to2025-09-30" id="ixv-14696">TOMZ</ix:nonNumeric></p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><ix:nonNumeric name="dei:SecurityExchangeName" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:exchnameen" id="ixv-14697">Nasdaq</ix:nonNumeric> Capital Market</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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. <ix:nonNumeric name="dei:EntityCurrentReportingStatus" contextRef="From2025-01-01to2025-09-30" id="ixv-14698">Yes</ix:nonNumeric> &#9746; &#160;No &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted and posted pursuant to Rule 405 of Regulation S-T (&#167;232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files). <ix:nonNumeric name="dei:EntityInteractiveDataCurrent" contextRef="From2025-01-01to2025-09-30" id="ixv-14699">Yes</ix:nonNumeric> &#9746; No &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;text-align:justify;margin-left:auto;margin-right:auto;width:85%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:30%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Large accelerated filer </p></td><td style="width:20%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9744;</p></td><td style="width:20%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accelerated filer</p></td><td style="width:30%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9744;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric name="dei:EntityFilerCategory" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:entityfilercategoryen" id="ixv-14700">Non-accelerated filer</ix:nonNumeric></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#9746;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Smaller reporting company</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric name="dei:EntitySmallBusiness" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:boolballotbox" id="ixv-14701">&#9746;</ix:nonNumeric></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Emerging growth company </p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px"><ix:nonNumeric name="dei:EntityEmergingGrowthCompany" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:boolballotbox" id="ixv-14702">&#9744;</ix:nonNumeric></p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. &#9744;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes <ix:nonNumeric name="dei:EntityShellCompany" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:boolballotbox" id="ixv-14703">&#9744;</ix:nonNumeric>&#160;&#160;No &#9746;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">As of November 12, 2025, the registrant had <ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" contextRef="AsOf2025-11-12" format="ixt:numdotdecimal" unitRef="Shares" decimals="INF" id="ixv-14704">20,225,205</ix:nonFraction> shares of common stock issued and outstanding.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="font-size:1px;width:100%"><tbody><tr><td style="BORDER-BOTTOM: 2px solid;"/></tr><tr><td style="BORDER-BOTTOM: 5px solid;"/></tr></tbody></table><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="TEXT-INDENT: 0px;"/></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td>&#160;</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>QUARTERLY REPORT ON FORM 10-Q FOR THE QUARTER ENDED SEPTEMBER 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong><span class="atag" style="display: inline" id="toc">TABLE OF CONTENTS </span></strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;"><strong>Page</strong></p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td colspan="2" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><a href="#statement">CAUTIONARY NOTE REGARDING FORWARD-LOOKING STATEMENTS</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">3</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><a href="#p1">PART I </a></strong></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><a href="#p1">FINANCIAL INFORMATION</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i1">Item 1</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i1">Financial Statements.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">4</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i2">Item 2</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i2">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">26</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i3">Item 3</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i3">Quantitative and Qualitative Disclosures About Market Risk.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">39</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i4">Item 4</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p1i4">Controls and Procedures.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">39</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><a href="#p2">PART II </a></strong></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><strong><a href="#p2">OTHER INFORMATION</a></strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i1">Item 1</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i1">Legal Proceedings.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i1a">Item 1A</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i1a">Risk Factors.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i2">Item 2</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i2">Unregistered Sales of Equity Securities and Use of Proceeds.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i3">Item 3</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i3">Defaults Upon Senior Securities.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i4">Item 4</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i4">Mine Safety Disclosures.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i5">Item 5</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i5">Other Information.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i6">Item 6</a></p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#p2i6">Exhibits.</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">41</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td colspan="2" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#sig">SIGNATURES</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">42</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td colspan="2" style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 0in"><a href="#ex">EXHIBIT INDEX</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 0in; text-align:center;">43</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; &#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">2</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="statement">FORWARD-LOOKING STATEMENTS</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">This Quarterly Report on Form 10-Q, or this Form 10-Q, contains &#8220;forward-looking statements&#8221; within the meaning of Section 27A of the Securities Act of 1933, as amended, or the Securities Act, and Section 21E of the Securities Exchange Act of 1934, as amended, or the Exchange Act, and we intend that such &#8220;forward looking statements&#8221; be subject to the safe harbors created thereby. For this purpose, any statements contained in this Form 10-Q, except for historical information, may be deemed &#8220;forward-looking statements&#8221;. You can generally identify &#8220;forward-looking statements&#8221; as statements containing the words &#8220;will,&#8221; &#8220;would,&#8221; &#8220;believe,&#8221; &#8220;expect,&#8221; &#8220;estimate,&#8221; &#8220;anticipate,&#8221; &#8220;intend,&#8221; &#8220;assume,&#8221; &#8220;can,&#8221; &#8220;could,&#8221; &#8220;plan,&#8221; &#8220;predict,&#8221; &#8220;should&#8221; or the negative or other variations thereof or comparable terminology are intended to identify forward-looking statements. In addition, any statements that refer to projections of our future financial performance, trends in our businesses, or other characterizations of future events or circumstances are &#8220;forward-looking statements&#8221;.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;&#8220;Forward-looking statements&#8221; involve known and unknown risks and uncertainties, which could cause actual results to differ materially from those contained in any&#8221; forward-looking statement&#8221;. The &#8220;forward-looking statements&#8221; included herein are based on current expectations of our management based on available information and involve a number of risks and uncertainties, all of which are difficult or impossible to predict accurately and many of which are beyond our control. As such, our actual results could differ materially and adversely from those expressed in any &#8220;forward-looking statements&#8221; as a result of various factors, some of which are listed under the section &#8220;Risk Factors&#8221; in our most recent annual report on Form 10-K previously filed with the Securities and Exchange Commission on April 14, 2025, as amended. Readers should carefully review these risks, as well as the additional risks described in other documents we file from time to time with the Securities and Exchange Commission. In light of the significant risks and uncertainties inherent in the forward-looking information included herein, the inclusion of such information should not be regarded as a representation by us or any other person that such results will be achieved, and readers are cautioned not to place undue reliance on such forward-looking information. Except as required by law, we undertake no obligation to revise the &#8220;forward-looking statements&#8221; contained herein to reflect events or circumstances after the date hereof or to reflect the occurrence of unanticipated events.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">3</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="p1">PART I: FINANCIAL INFORMATION</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p1i1">Item 1. Financial Statements.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td colspan="9" style="vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ASSETS</strong></p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="white-space:normal;word-spacing:0px;text-transform:none;float:none;font-weight:400;color:rgb(0,0,0);font-style:normal;text-align:left;orphans:2;widows:2;display:inline !important;text-indent:0px;font-variant-ligatures:normal;font-variant-caps:normal;-webkit-text-stroke-width:0px;text-decoration-thickness:initial;text-decoration-style:initial;text-decoration-color:initial;font-size:14pt">Current Assets:</span></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1593" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">490,022</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1594" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">664,879</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accounts Receivable - net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1595" name="us-gaap:AccountsReceivableNetCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">619,965</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1596" name="us-gaap:AccountsReceivableNetCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,881,138</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventories - net (Note 3)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1597" name="tomz:InventoryCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,364,260</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1598" name="tomz:InventoryCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,578,202</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vendor Deposits (Note 4)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1599" name="us-gaap:DepositsAssetsCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">222,065</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1600" name="us-gaap:DepositsAssetsCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">35,895</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Prepaid Expenses</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1601" name="us-gaap:PrepaidExpenseCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">333,997</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1602" name="us-gaap:PrepaidExpenseCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">332,999</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Total Current Assets</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1603" name="us-gaap:AssetsCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,030,309</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1604" name="us-gaap:AssetsCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">6,493,113</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and Equipment &#8211; net (Note 5)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1605" name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">678,528</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1606" name="us-gaap:PropertyPlantAndEquipmentNet" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">875,449</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Assets:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Intangible Assets &#8211; net (Note 6)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1608" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,359,205</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1609" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,250,574</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Lease - Right of Use Asset (Note - 7)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1610" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">342,229</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1611" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">399,254</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Assets</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1612" name="us-gaap:OtherAssetsCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">634,920</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1613" name="us-gaap:OtherAssetsCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">675,348</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Total Other Assets</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1614" name="us-gaap:OtherAssets" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,336,354</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1615" name="us-gaap:OtherAssets" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,325,176</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Assets</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1616" name="us-gaap:Assets" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">8,045,191</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1617" name="us-gaap:Assets" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">9,693,738</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td colspan="9" style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</strong></p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current Liabilities:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Accounts Payable</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1619" name="us-gaap:AccountsPayableCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,258,483</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1620" name="us-gaap:AccountsPayableCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,924,379</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Accrued Expenses and Other Current Liabilities (Notes 13 and 14)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1621" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">828,723</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1622" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">455,675</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Deferred Revenue</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1623" name="us-gaap:DeferredRevenueCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">309,752</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1624" name="us-gaap:DeferredRevenueCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">211,724</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Current Portion of Long-Term Operating Lease (Note 7)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1625" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">139,917</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1626" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">129,132</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Total Current Liabilities</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1627" name="us-gaap:LiabilitiesCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,536,875</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1628" name="us-gaap:LiabilitiesCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,720,910</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-Term Liabilities:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Long-Term Operating Lease, Net of Current Portion (Note 7)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1630" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">407,781</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1631" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">513,395</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes Payable, net of discount of $<ix:nonFraction id="fid_603" name="us-gaap:DebtInstrumentUnamortizedDiscount" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">240,947</ix:nonFraction> and $<ix:nonFraction id="fid_575" name="us-gaap:DebtInstrumentUnamortizedDiscount" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">239,506</ix:nonFraction> at September 30, 2025 and December 31, 2024, respectively (Note 9)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1632" name="us-gaap:ConvertibleLongTermNotesPayable" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,894,053</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1633" name="us-gaap:ConvertibleLongTermNotesPayable" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,360,494</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Long-Term Liabilities</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1634" name="us-gaap:LiabilitiesNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,301,834</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1635" name="us-gaap:LiabilitiesNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,873,889</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Liabilities</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1636" name="us-gaap:Liabilities" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,838,709</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1637" name="us-gaap:Liabilities" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,594,799</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commitments and Contingencies (Notes 7, 9 and 11)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1638" name="us-gaap:CommitmentsAndContingencies" contextRef="AsOf2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1639" name="us-gaap:CommitmentsAndContingencies" contextRef="AsOf2024-12-31" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Shareholders&#8217; Equity:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cumulative Convertible Series A Preferred Stock; par value $<ix:nonFraction id="fid_604" name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.01</ix:nonFraction> per share, <ix:nonFraction id="fid_605" name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">1,000,000</ix:nonFraction> shares authorized; <ix:nonFraction id="fid_606" name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction> shares issued and outstanding at September 30, 2025 and December 31, 2024, respectively</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1641" name="us-gaap:PreferredStockValue" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1642" name="us-gaap:PreferredStockValue" contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cumulative Convertible Series B Preferred Stock; $<ix:nonFraction id="fid_608" name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1,000</ix:nonFraction> stated value; <ix:nonFraction id="fid_612" name="tomz:CumulativeDividendPercenatge" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" unitRef="Pure" decimals="3" scale="-2">7.5</ix:nonFraction>% Cumulative dividend; <ix:nonFraction id="fid_609" name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">4,000</ix:nonFraction> shares authorized; none issued and outstanding at September 30, 2025 and December 31, 2024, respectively</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1749" name="us-gaap:PreferredStockValue" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1750" name="us-gaap:PreferredStockValue" contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Common stock; par value $<ix:nonFraction id="fid_613" name="us-gaap:CommonStockParOrStatedValuePerShare" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.01</ix:nonFraction> per share, <ix:nonFraction id="fid_614" name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">250,000,000</ix:nonFraction> shares authorized; <ix:nonFraction id="fid_615" name="us-gaap:CommonStockSharesIssued" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction> and <ix:nonFraction id="fid_581" name="us-gaap:CommonStockSharesIssued" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction> shares issued and outstanding at September 30, 2025 and December 31, 2024, respectively</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1747" name="us-gaap:CommonStockValue" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,752</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1748" name="us-gaap:CommonStockValue" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,152</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Additional Paid-In Capital</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1645" name="us-gaap:AdditionalPaidInCapital" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,251,540</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1646" name="us-gaap:AdditionalPaidInCapital" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,201,140</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accumulated Deficit</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1647" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">56,246,448</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1648" name="us-gaap:RetainedEarningsAccumulatedDeficit" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">54,302,991</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Shareholders&#8217; Equity</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1649" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,206,482</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1650" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,098,939</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Liabilities and Shareholders&#8217; Equity</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1651" name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">8,045,191</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1652" name="us-gaap:LiabilitiesAndStockholdersEquity" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">9,693,738</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying notes are an integral part of the condensed consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">4</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(UNAUDITED)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1655" name="us-gaap:Revenues" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,011,556</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1656" name="us-gaap:Revenues" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,542,251</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1657" name="us-gaap:Revenues" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,619,229</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1658" name="us-gaap:Revenues" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">6,669,730</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cost of Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1659" name="us-gaap:CostOfRevenue" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">779,585</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1660" name="us-gaap:CostOfRevenue" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">981,124</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1661" name="us-gaap:CostOfRevenue" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,758,389</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1662" name="us-gaap:CostOfRevenue" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,583,419</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross Profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1663" name="us-gaap:GrossProfit" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,231,971</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1664" name="us-gaap:GrossProfit" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,561,127</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1665" name="us-gaap:GrossProfit" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,860,840</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1666" name="us-gaap:GrossProfit" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,086,311</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Expenses:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Professional Fees</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1668" name="us-gaap:ProfessionalFees" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">185,476</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1669" name="us-gaap:ProfessionalFees" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">104,941</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1670" name="us-gaap:ProfessionalFees" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">588,666</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1671" name="us-gaap:ProfessionalFees" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">387,267</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Depreciation and Amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1672" name="us-gaap:DepreciationAndAmortization" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">68,588</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1673" name="us-gaap:DepreciationAndAmortization" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">69,909</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1674" name="us-gaap:DepreciationAndAmortization" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">206,368</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1675" name="us-gaap:DepreciationAndAmortization" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">224,384</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Selling Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1676" name="us-gaap:SellingExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">143,599</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1677" name="us-gaap:SellingExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">226,593</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1678" name="us-gaap:SellingExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">630,467</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1679" name="us-gaap:SellingExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">881,927</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Research and Development</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1680" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">10,694</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1681" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">56,338</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1682" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">139,380</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1683" name="us-gaap:ResearchAndDevelopmentExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">185,923</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Consulting Fees</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1684" name="us-gaap:LegalFees" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">72,623</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1685" name="us-gaap:LegalFees" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">44,338</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1686" name="us-gaap:LegalFees" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">238,487</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1687" name="us-gaap:LegalFees" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">181,068</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">General and Administrative</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1688" name="us-gaap:GeneralAndAdministrativeExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,072,406</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1689" name="us-gaap:GeneralAndAdministrativeExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">909,906</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1690" name="us-gaap:GeneralAndAdministrativeExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,266,041</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1691" name="us-gaap:GeneralAndAdministrativeExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,181,304</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Operating Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1692" name="us-gaap:OperatingExpenses" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,553,386</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1693" name="us-gaap:OperatingExpenses" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,412,025</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1694" name="us-gaap:OperatingExpenses" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,069,409</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1695" name="us-gaap:OperatingExpenses" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,041,873</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (loss) from Operations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1696" name="us-gaap:OperatingIncomeLoss" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">321,415</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1697" name="us-gaap:OperatingIncomeLoss" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">149,102</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1698" name="us-gaap:OperatingIncomeLoss" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">2,208,569</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1699" name="us-gaap:OperatingIncomeLoss" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">955,562</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Income (Expense):</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="TEXT-INDENT: 15px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Income (Note 18)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1701" name="us-gaap:OtherIncome" contextRef="From2025-07-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1702" name="us-gaap:OtherIncome" contextRef="From2024-07-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1703" name="us-gaap:OtherIncome" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">534,912</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1704" name="us-gaap:OtherIncome" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Interest Income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1705" name="us-gaap:InterestIncomeOperating" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,406</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1706" name="us-gaap:InterestIncomeOperating" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,480</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1707" name="us-gaap:InterestIncomeOperating" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">85,717</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1708" name="us-gaap:InterestIncomeOperating" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">15,231</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Interest Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1709" name="us-gaap:InterestExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">130,339</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1710" name="us-gaap:InterestExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">93,620</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1711" name="us-gaap:InterestExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">355,517</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1712" name="us-gaap:InterestExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">280,699</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Other Income (Expense)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1713" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">128,933</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1714" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">90,140</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1715" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">265,112</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1716" name="us-gaap:OtherNonoperatingIncomeExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">265,468</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (loss) before income taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1717" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1718" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1719" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,943,457</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1720" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,221,030</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for Income Taxes (Note 15)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1721" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2025-07-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1722" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2024-07-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1723" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2025-01-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1724" name="us-gaap:IncomeTaxExpenseBenefit" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1725" name="us-gaap:NetIncomeLoss" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1726" name="us-gaap:NetIncomeLoss" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1727" name="us-gaap:NetIncomeLoss" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,943,457</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1728" name="us-gaap:NetIncomeLoss" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,221,030</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) Per Common Share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Basic</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1730" name="us-gaap:EarningsPerShareBasic" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.02</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1731" name="us-gaap:EarningsPerShareBasic" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.00</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1732" name="us-gaap:EarningsPerShareBasic" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.10</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1733" name="us-gaap:EarningsPerShareBasic" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1734" name="us-gaap:EarningsPerShareDiluted" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.02</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1735" name="us-gaap:EarningsPerShareDiluted" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.00</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1736" name="us-gaap:EarningsPerShareDiluted" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.10</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1737" name="us-gaap:EarningsPerShareDiluted" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Weighted Average Common Shares Outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1738" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1739" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1740" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,046,195</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1741" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">19,984,179</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Weighted Average Common Shares Outstanding</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1742" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1743" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,096,751</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1744" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,046,195</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1745" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">19,984,179</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying notes are an integral part of the condensed consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">5</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(UNAUDITED)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="14"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="6" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Series A</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Additional </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Preferred </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Paid </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shareholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>in Capital</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at January 1, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1751" name="us-gaap:SharesIssued" contextRef="AsOf2024-12-31_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1753" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-12-31_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1752" name="us-gaap:SharesIssued" contextRef="AsOf2024-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1754" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,152</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1755" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,201,140</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1756" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-12-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">54,302,991</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1757" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,098,939</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Common Stock Issued for Services Provided</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1759" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" contextRef="From2025-01-01to2025-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">60,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1761" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" contextRef="From2025-01-01to2025-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">600</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1762" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" contextRef="From2025-01-01to2025-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">50,400</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1764" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">51,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net (Loss) for the nine months ended September 30, 2025</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1768" name="us-gaap:NetIncomeLoss" contextRef="From2025-01-01to2025-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,943,457</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1769" name="us-gaap:NetIncomeLoss" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,943,457</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at September 30, 2025</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1770" name="us-gaap:SharesIssued" contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1772" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1771" name="us-gaap:SharesIssued" contextRef="AsOf2025-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1773" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,752</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1774" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,251,540</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1775" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">56,246,448</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1776" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,206,482</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="14"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="6" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Series A</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Additional </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Preferred</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;Paid </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shareholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>in Capital</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at January 1, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1777" name="us-gaap:SharesIssued" contextRef="AsOf2023-12-31_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1779" name="us-gaap:StockholdersEquity" contextRef="AsOf2023-12-31_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1778" name="us-gaap:SharesIssued" contextRef="AsOf2023-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">19,923,955</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1780" name="us-gaap:StockholdersEquity" contextRef="AsOf2023-12-31_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">199,240</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1781" name="us-gaap:StockholdersEquity" contextRef="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">57,985,245</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1782" name="us-gaap:StockholdersEquity" contextRef="AsOf2023-12-31_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">49,826,229</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1783" name="us-gaap:StockholdersEquity" contextRef="AsOf2023-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">8,358,894</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options Exercised</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1785" name="tomz:OptionsExercisedShares" contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">31,250</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1787" name="tomz:OptionsExercisedAmount" contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">312</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1788" name="tomz:OptionsExercisedAmount" contextRef="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">27,188</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1790" name="tomz:OptionsExercisedAmount" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">27,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Common Stock Issued for Services Provided</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1792" name="us-gaap:StockIssuedDuringPeriodSharesIssuedForServices" contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">60,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1794" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">600</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1795" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" contextRef="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">44,400</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1797" name="us-gaap:StockIssuedDuringPeriodValueIssuedForServices" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">45,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equity Compensation</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1800" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">144,307</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1802" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">144,307</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net (Loss) for the nine months ended September 30, 2024</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1806" name="us-gaap:NetIncomeLoss" contextRef="From2024-01-01to2024-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,221,030</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1807" name="us-gaap:NetIncomeLoss" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,221,030</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at September 30, 2024</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1808" name="us-gaap:SharesIssued" contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1810" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1809" name="us-gaap:SharesIssued" contextRef="AsOf2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1811" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,152</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1812" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,201,140</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1813" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">51,047,259</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1814" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,354,671</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying notes are an integral part of the condensed consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">6</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(UNAUDITED)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="14"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="6" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Series A</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Additional </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Preferred</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Paid </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shareholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>in Capital</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at July 1, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1815" name="us-gaap:SharesIssued" contextRef="AsOf2025-06-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1817" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-06-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1816" name="us-gaap:SharesIssued" contextRef="AsOf2025-06-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1818" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-06-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,752</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1819" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,251,540</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1820" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-06-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">55,796,100</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1821" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-06-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,656,830</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net (Loss) for the three months ended September 30, 2025</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1825" name="us-gaap:NetIncomeLoss" contextRef="From2025-07-01to2025-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1826" name="us-gaap:NetIncomeLoss" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at September 30, 2025</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1827" name="us-gaap:SharesIssued" contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1829" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1828" name="us-gaap:SharesIssued" contextRef="AsOf2025-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1830" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,752</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1831" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,251,540</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1832" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">56,246,448</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1833" name="us-gaap:StockholdersEquity" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,206,482</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="14"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="6" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Series A</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Additional </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Total </strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Preferred</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Common Stock</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;Paid </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Accumulated</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shareholders&#8217;</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Shares</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Amount</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>in Capital</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Deficit</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Equity </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at July 1, 2024</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1834" name="us-gaap:SharesIssued" contextRef="AsOf2024-06-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1836" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-06-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1835" name="us-gaap:SharesIssued" contextRef="AsOf2024-06-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1837" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-06-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,152</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1838" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,201,140</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1839" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-06-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">51,106,221</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:5%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1840" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-06-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,295,709</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income for the three months ended September 30, 2024</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1844" name="us-gaap:NetIncomeLoss" contextRef="From2024-07-01to2024-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1845" name="us-gaap:NetIncomeLoss" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Balance at September 30, 2024</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1846" name="us-gaap:SharesIssued" contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1848" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">638</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1847" name="us-gaap:SharesIssued" contextRef="AsOf2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1849" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_us-gaap_CommonStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">200,152</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1850" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_us-gaap_AdditionalPaidInCapitalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,201,140</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1851" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30_us-gaap_RetainedEarningsMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">51,047,259</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1852" name="us-gaap:StockholdersEquity" contextRef="AsOf2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,354,671</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying notes are an integral part of the condensed consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">7</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(UNAUDITED)</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>For the nine months ended </strong></p><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flow From Operating Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Net (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1854" name="us-gaap:ProfitLoss" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,943,457</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1855" name="us-gaap:ProfitLoss" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,221,030</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Adjustments to Reconcile Net (Loss) to Net Cash (Used) In Operating Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Depreciation and Amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1857" name="us-gaap:DepreciationAndAmortization" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">206,368</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1858" name="us-gaap:DepreciationAndAmortization" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">224,384</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Amortization of Right of Use Asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1859" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">117,986</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1860" name="us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">117,986</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Amortization of Deferred Financing Costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1861" name="us-gaap:AmortizationOfFinancingCosts" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">52,617</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1862" name="us-gaap:AmortizationOfFinancingCosts" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">46,860</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Equity Compensation Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1863" name="us-gaap:ShareBasedCompensation" contextRef="From2025-01-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1864" name="us-gaap:ShareBasedCompensation" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">144,307</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Value of Equity Issued for Services</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1865" name="us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">51,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1866" name="us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">45,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Credit Loss Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1867" name="us-gaap:ProvisionForDoubtfulAccounts" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">197,639</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1868" name="us-gaap:ProvisionForDoubtfulAccounts" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Inventory Reserve</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1869" name="us-gaap:InventoryLIFOReserveEffectOnIncomeNet" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">232,275</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1870" name="us-gaap:InventoryLIFOReserveEffectOnIncomeNet" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Sales Returns Allowance</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1871" name="tomz:AllowanceOnSalesReturns" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">61,828</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1872" name="tomz:AllowanceOnSalesReturns" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Changes in Operating Assets and Liabilities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Decrease (Increase) in:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Accounts Receivable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1875" name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,003,569</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1876" name="us-gaap:IncreaseDecreaseInAccountsReceivable" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">716,462</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Inventory</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1877" name="us-gaap:IncreaseDecreaseInInventories" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">431,820</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1878" name="us-gaap:IncreaseDecreaseInInventories" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">46,988</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Prepaid Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1879" name="us-gaap:IncreaseDecreaseInPrepaidExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">6,578</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1880" name="us-gaap:IncreaseDecreaseInPrepaidExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">25,455</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="TEXT-INDENT: 45px;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vendor Deposits</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1881" name="us-gaap:IncreaseDecreaseInDepositOtherAssets" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">186,170</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1882" name="us-gaap:IncreaseDecreaseInDepositOtherAssets" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">68,153</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Other Assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1883" name="us-gaap:IncreaseDecreaseInOtherCurrentAssets" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">40,428</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1884" name="us-gaap:IncreaseDecreaseInOtherCurrentAssets" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">121,888</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:30px">Increase (Decrease) in:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Accounts Payable</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1886" name="us-gaap:IncreaseDecreaseInAccountsPayable" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">510,970</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1887" name="us-gaap:IncreaseDecreaseInAccountsPayable" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">285,194</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Accrued Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1888" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">319,934</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1889" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">137,982</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Deferred Revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1890" name="us-gaap:IncreaseDecreaseInDeferredRevenue" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">56,376</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1891" name="us-gaap:IncreaseDecreaseInDeferredRevenue" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Lease Liability</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1892" name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">126,395</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1893" name="us-gaap:IncreaseDecreaseInOperatingLeaseLiability" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">123,521</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Cash (Used) in Operating Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1894" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">576,780</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1895" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,452,862</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flow From Investing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Capitalized Patent and Trademark Costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1897" name="us-gaap:PaymentsToAcquireIntangibleAssets" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">130,412</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1898" name="us-gaap:PaymentsToAcquireIntangibleAssets" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Purchase of Property and Equipment</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1899" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,665</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1900" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">104,660</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Cash (Used) in Investing Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1901" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">133,077</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1902" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">104,660</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Flow From Financing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Proceeds from Issuance of Convertible Notes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1904" name="us-gaap:ProceedsFromConvertibleDebt" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">535,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1905" name="us-gaap:ProceedsFromConvertibleDebt" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Proceeds from Exercise of Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1906" name="us-gaap:ProceedsFromStockOptionsExercised" contextRef="From2025-01-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1907" name="us-gaap:ProceedsFromStockOptionsExercised" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">27,500</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Cash Provided By Financing Activities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1908" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">535,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1909" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">27,500</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">(Decrease) In Cash and Cash Equivalents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1910" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">174,857</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1911" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,530,022</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents - Beginning</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1912" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">664,879</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1913" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="AsOf2023-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,339,059</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents &#8211; Ending</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1914" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">490,022</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1915" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" contextRef="AsOf2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">809,037</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Supplemental Cash Flow Information:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Cash Paid for Interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1917" name="us-gaap:InterestPaidNet" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">309,314</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1918" name="us-gaap:InterestPaidNet" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">222,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Non-Cash Investing and Financing Activities:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service equipment reclassified from inventory to fixed assets</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1920" name="tomz:NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">14,397</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1921" name="tomz:NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" contextRef="From2024-01-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:left;">The accompanying notes are an integral part of the condensed consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">8</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>NOTES TO UNAUDITED CONDENSED CONSOLIDATED FINANCIAL STATEMENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_771" name="us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 1. DESCRIPTION OF BUSINESS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">TOMI Environmental Solutions, Inc., a Florida corporation (&#8220;TOMI&#8221;, the &#8220;Company&#8221;, &#8220;we&#8221;, &#8220;our&#8221; and &#8220;us&#8221;) is a global provider of disinfection and decontamination essentials through our premier Binary Ionization Technology&#174; (BIT&#8482;) platform, under which we manufacture, license, service and sell our SteraMist&#174; brand of products, including SteraMist&#174; BIT&#8482;, a hydrogen peroxide-based mist and fog. Our solution and process are environmentally friendly as the only product from our decontamination process is oxygen and water in the form of humidity. Our solution is organically listed in the United States and Canada as a sustainably green product with no or very little carbon footprint. Our business is organized into four divisions: Life Sciences, Hospital Healthcare, Food Safety and Commercial.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Invented under a defense grant in association with the Defense Advanced Research Projects Agency (&#8220;DARPA&#8221;) of the U.S. Department of Defense, BIT&#8482; is registered with the U.S. Environmental Protection Agency (the &#8220;EPA&#8221;) and uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (<strong><sup style="vertical-align:super">.</sup></strong>OH ion), known as ionized Hydrogen Peroxide (iHP&#8482;). Represented by the SteraMist&#174; brand of products, iHP&#8482; produces a germ-killing aerosol that works like a visual non-caustic gas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our products are designed to service a broad spectrum of commercial structures, including, but not limited to, hospitals and medical facilities, bio-safety labs, pharmaceutical facilities, meat and produce processing facilities, food security including storage and transportation, universities and research facilities, vivarium labs, other service industries including cruise ships, office buildings, hotel and motel rooms, schools, restaurants, military barracks, police and fire departments, prisons, and athletic facilities. Our products are also used in single-family homes and multi-unit residences. Additionally, our products have been listed on EPA&#8217;s List N as products that help combat COVID-19 and are actively being used for this purpose.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_776" name="us-gaap:SignificantAccountingPoliciesTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_0dfb59"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Basis of Presentation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_816" name="us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The interim unaudited condensed consolidated financial statements included herein, presented in accordance with generally accepted accounting principles in the United States of America (GAAP), and stated in U.S. dollars, have been prepared by us, without an audit, pursuant to the rules and regulations of the U.S. Securities and Exchange Commission (the &#8220;SEC&#8221;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations, although we believe that the disclosures are adequate to make the information presented not misleading.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">These financial statements reflect all adjustments, consisting of normal recurring adjustments, which, in the opinion of management, are necessary for fair presentation of the information contained therein. These unaudited condensed consolidated financial statements should be read in conjunction with our audited financial statements for the year ended December 31, 2024, and notes thereto which are included in the annual report on Form 10-K previously filed with the SEC on April 14, 2025, as amended (the &#8220;Annual Report&#8221;). We follow the same accounting policies in the preparation of interim reports. The results of operations for the interim periods covered by this Form 10-Q may not necessarily be indicative of results of operations for the full fiscal year or any other interim period.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Principles of Consolidation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_794" name="us-gaap:ConsolidationPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The accompanying condensed consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Reclassification of Accounts</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_795" name="us-gaap:PriorPeriodReclassificationAdjustmentDescription" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.</p></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">9</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_0dfb59" continuedAt="cont_34b43a"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em></em></strong>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Use of Estimates</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_796" name="us-gaap:UseOfEstimates" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The preparation of the condensed consolidated financial statements in conformity with GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to allowance for credit losses, inventory, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Fair Value Measurements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_797" name="us-gaap:FairValueMeasurementPolicyPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of input, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Cash and Cash Equivalents</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_798" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be more than insured limits. At September 30, 2025, and December 31, 2024, there were no cash equivalents.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Accounts Receivable</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_799" name="us-gaap:ReceivablesPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_f999ba"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accounts receivables are stated at the amount management expects to collect from outstanding balances. The Company generally does not require collateral to support customer receivables. Management assesses the collectability of outstanding customer invoices and maintains an allowance resulting from the expected non-collection of customer receivables. In estimating this reserve, management considers factors such as industry sector, historical collection experience, customer creditworthiness, specific customer risk, and current and expected general economic conditions. For those customers to whom we extend credit, in accordance with the Current Expected Credit Loss (CECL) model, we make a risk-based evaluation at the point of sale which is further reviewed on both an individual and collective (pool) basis during each reporting period based on ASC 326. We are required to estimate and report expected credit losses over the entire life of a financial asset, considering historical data, current conditions, and future forecasts, even if the risk of loss is remote. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">10</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_34b43a" continuedAt="cont_3de44d"><ix:continuation id="cont_f999ba"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have implemented a policy of reserving credit losses based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be at risk. Our allowance for credit losses was as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_817" name="tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,229,977</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_890" name="us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,494,347</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Credit loss expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_3" name="tomz:AccountsAndFinancingReceivableForCreditLoss" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">197,639</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_2" name="tomz:AccountsAndFinancingReceivableForCreditLoss" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,050,543</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustment for uncollectible accounts</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_5" name="us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,236,069</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_4" name="us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">314,913</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_7" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,191,547</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_6" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,229,977</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Inventories</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_800" name="us-gaap:InventoryPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials. We expense certification costs to cost of goods sold as incurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence, and future customer demand. We record an allowance for estimated losses when the facts and circumstances indicate that inventories may not be usable or realized when comparing current inventory levels to anticipated demand for our product.&#160; Our reserve for obsolete inventory was $<ix:nonFraction id="fid_59" name="tomz:InventoryValuationReserve" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">868,000</ix:nonFraction> and $<ix:nonFraction id="fid_58" name="tomz:InventoryValuationReserve" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,100,000</ix:nonFraction> as of September 30, 2025, and December 31, 2024, respectively.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Property and Equipment</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_801" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation commences for equipment, furniture and fixtures and vehicles, once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the remaining lease term at the time the asset was placed into service or the service lives of the improvements, whichever is shorter.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Leases</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_802" name="us-gaap:LesseeLeasesPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depend upon classification as a finance or operating lease.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have also elected the practical expedient not to separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense in the period in which they are incurred.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Accounts Payable</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_803" name="tomz:AccountsPayablePolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, one vendor accounted for approximately <ix:nonFraction id="fid_99" name="tomz:ConcentrationRiskPercentage" contextRef="AsOf2025-09-30_tomz_OneVendorsMember_us-gaap_AccountsPayableMember" unitRef="Pure" decimals="2" scale="-2">46</ix:nonFraction>% of accounts payable. As of December 31, 2024, one vendor accounted for approximately <ix:nonFraction id="fid_67" name="tomz:ConcentrationRiskPercentage" contextRef="AsOf2024-12-31_tomz_OneVendorsMember_us-gaap_AccountsPayableMember" unitRef="Pure" decimals="1" scale="-2">60</ix:nonFraction>% of accounts payable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September 30, 2025, two vendors accounted for <ix:nonFraction id="fid_944" name="tomz:ConcentrationRiskInPercentage" contextRef="From2025-07-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" unitRef="Pure" decimals="2" scale="-2">59</ix:nonFraction>% and <ix:nonFraction id="fid_70" name="tomz:ConcentrationRiskInPercentage" contextRef="From2025-01-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" unitRef="Pure" decimals="1" scale="-2">50</ix:nonFraction>% of cost of sales, respectively. For the three and nine months ended September 30, 2024, two vendors accounted for <ix:nonFraction id="fid_946" name="tomz:ConcentrationRiskInPercentage" contextRef="From2024-07-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" unitRef="Pure" decimals="2" scale="-2">53</ix:nonFraction>% and <ix:nonFraction id="fid_101" name="tomz:ConcentrationRiskInPercentage" contextRef="From2024-01-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember" unitRef="Pure" decimals="2" scale="-2">65</ix:nonFraction>% of cost of sales, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">11</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_3de44d" continuedAt="cont_03a5f8"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Accrued Warranties</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_804" name="us-gaap:ExtendedProductWarrantyPolicy" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results.&#160; As of September 30, 2025, and December 31, 2024, our warranty reserve was $<ix:nonFraction id="fid_61" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">22,648</ix:nonFraction> and $<ix:nonFraction id="fid_60" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">30,000</ix:nonFraction>, respectively. (See Note 14).</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Income Taxes</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_805" name="us-gaap:IncomeTaxPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes.&#160; Net deferred tax assets have been fully reserved as of September 30, 2025, and December 31, 2024.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Net Income (Loss) Per Share</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_806" name="us-gaap:EarningsPerSharePolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_c5c6ba"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures. The computation of diluted EPS is similar to the computation of basic EPS except that the numerator may have to adjust for any dividends and income or loss associated with potentially dilutive securities that are assumed to have resulted in the issuance of shares of common stock and the denominator may have to adjust to include the number of additional shares of common stock that would have been outstanding if the dilutive potential shares of common stock had been issued during the period to reflect the potential dilution that could occur from shares of common stock issuable through a contingent shares issuance arrangement, stock options, warrants, or convertible preferred stock. For purposes of determining diluted earnings per common share, the treasury stock method is used for stock options, and warrants, and the if-converted method is used for convertible preferred stock and convertible debt as prescribed in FASB ASC Topic 260. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Potentially dilutive securities as of September 30, 2025, consisted of <ix:nonFraction id="fid_75" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2025-09-30_tomz_ConvertibleDebenturesMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,508,000</ix:nonFraction> shares of common stock from convertible debentures, <ix:nonFraction id="fid_76" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2025-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,604,388</ix:nonFraction> shares of common stock issuable upon exercise of outstanding warrants, <ix:nonFraction id="fid_77" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2025-09-30_tomz_StockOptionsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">768,792</ix:nonFraction> shares of common stock issuable upon outstanding stock options and <ix:nonFraction id="fid_78" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2025-09-30_tomz_PreferredAStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction> shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Potentially dilutive securities as of September 30, 2024, consisted of <ix:nonFraction id="fid_103" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2024-09-30_tomz_ConvertibleDebenturesMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,080,000</ix:nonFraction> shares of common stock from convertible debentures, <ix:nonFraction id="fid_104" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2024-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,765,846</ix:nonFraction> shares of common stock issuable upon exercise of outstanding warrants, <ix:nonFraction id="fid_105" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2024-09-30_tomz_StockOptionsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">805,042</ix:nonFraction> shares of common stock issuable upon vesting of stock options and exercise and <ix:nonFraction id="fid_106" name="tomz:PotentiallyDilutiveSecurities" contextRef="AsOf2024-09-30_tomz_PreferredAStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction> shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Options, warrants, preferred stock and shares associated with the conversion of debt to purchase approximately <ix:nonFraction id="fid_82" name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2025-09-30_tomz_EquityIncentivePlanOneMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="-5" scale="6">5.9</ix:nonFraction> million and <ix:nonFraction id="fid_107" name="us-gaap:CommonStockSharesOutstanding" contextRef="AsOf2024-09-30_tomz_EquityIncentivePlanOneMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="-5" scale="6">5.7</ix:nonFraction> million shares of common stock were outstanding on September 30, 2025, and 2024, respectively but were excluded from the computation of diluted net loss per share at September 30, 2025 and 2024 due to anti-dilutive effect on net loss per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_818" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_8" name="us-gaap:NetIncomeLoss" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_9" name="us-gaap:NetIncomeLoss" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustments for convertible debt - as converted:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1558" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt" contextRef="From2025-07-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1559" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt" contextRef="From2024-07-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest on convertible debt net of effective tax rate (28%)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_895" name="tomz:InterestOnConvertibleDebtNet" contextRef="From2025-07-01to2025-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_896" name="tomz:InterestOnConvertibleDebtNet" contextRef="From2024-07-01to2024-09-30" format="ixt:zerodash" unitRef="USD" decimals="0">-</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_10" name="tomz:NetLossAttributableToCommonShareholders" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_11" name="tomz:NetLossAttributableToCommonShareholders" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_13" name="us-gaap:WeightedAverageNumberOfSharesIssuedBasic" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_14" name="us-gaap:WeightedAverageNumberOfSharesIssuedBasic" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_15" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_16" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,096,751</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_18" name="us-gaap:BasicEarningsPerShareProForma" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.02</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_19" name="us-gaap:BasicEarningsPerShareProForma" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.00</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_20" name="us-gaap:DilutedEarningsPerShareProForma" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.02</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_21" name="us-gaap:DilutedEarningsPerShareProForma" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.00</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">12</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_03a5f8" continuedAt="cont_951d89"><ix:continuation id="cont_c5c6ba"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_819" name="us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_2d5622"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_22" name="us-gaap:NetIncomeLoss" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">450,348</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_23" name="us-gaap:NetIncomeLoss" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">58,962</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_24" name="us-gaap:WeightedAverageNumberOfSharesIssuedBasic" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_25" name="us-gaap:WeightedAverageNumberOfSharesIssuedBasic" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,015,205</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_898" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">5,908</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_905" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30_tomz_StockOptionsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">11,888</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_907" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30_tomz_PreferredStocksMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_26" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,075,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_27" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">20,096,751</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_908" name="us-gaap:DilutedEarningsPerShareProForma" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.02</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_909" name="us-gaap:DilutedEarningsPerShareProForma" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.00</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_910" name="us-gaap:BasicEarningsPerShareProForma" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">0.02</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_911" name="us-gaap:BasicEarningsPerShareProForma" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.00</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following table sets forth the number of potential shares of common stock that have been excluded from diluted net income (loss) per share because their effect was anti-dilutive:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_2d5622"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_924" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2025-07-01to2025-09-30_tomz_StockOptionsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">768,792</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_925" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30_tomz_StockOptionsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">573,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_926" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2025-07-01to2025-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,604,388</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_927" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,734,596</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1562" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2025-07-01to2025-09-30_us-gaap_ConvertibleDebtMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,508,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1563" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30_us-gaap_ConvertibleDebtMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,080,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_929" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">5,881,180</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_930" name="tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">5,387,596</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Note: Warrants, options, convertible debt and preferred stock for the nine months ending September 30, 2025 and 2024, are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p></ix:continuation></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">13</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_951d89" continuedAt="cont_2ff4cb"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em></em></strong>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Revenue Recognition</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_807" name="us-gaap:RevenueRecognitionPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_807414"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize revenue in accordance with the Financial Accounting Standards Board (FASB) Accounting Standards Codification (&#8220;ASC&#8221;) Topic 606, Revenue from Contracts with Customers. We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above for each distinct performance obligation identified in step (ii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to resale of our products by dealers and distributors. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Disaggregation of Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table presents our approximate revenue disaggregated by revenue source.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_820" name="us-gaap:DisaggregationOfRevenueTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_fca2c6"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_931" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-07-01to2025-09-30_tomz_SteraMistPRoductMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,603,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_932" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-07-01to2024-09-30_tomz_SteraMistPRoductMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,766,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_933" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-07-01to2025-09-30_tomz_ServiceAndTrainingMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">409,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_942" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-07-01to2024-09-30_tomz_ServiceAndTrainingMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">776,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_934" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-07-01to2025-09-30_tomz_ProductAndServiceRevenueMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,012,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_941" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-07-01to2024-09-30_tomz_ProductAndServiceRevenueMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,542,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_fca2c6" continuedAt="cont_176664"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_935" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-07-01to2025-09-30_tomz_UnitedStatesMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,280,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_940" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-07-01to2024-09-30_tomz_UnitedStatesMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,886,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_937" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-07-01to2025-09-30_tomz_InternationalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">732,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_939" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-07-01to2024-09-30_tomz_InternationalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">656,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_936" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-07-01to2025-09-30_tomz_GeographicRegionMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,012,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_938" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-07-01to2024-09-30_tomz_GeographicRegionMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,542,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_176664" continuedAt="cont_d86ba1"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_32" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-01-01to2025-09-30_tomz_SteraMistPRoductMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,255,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_88" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-01-01to2024-09-30_tomz_SteraMistPRoductMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,247,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_34" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-01-01to2025-09-30_tomz_ServiceAndTrainingMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,364,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_89" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-01-01to2024-09-30_tomz_ServiceAndTrainingMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,423,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_36" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-01-01to2025-09-30_tomz_ProductAndServiceRevenueMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,619,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_91" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-01-01to2024-09-30_tomz_ProductAndServiceRevenueMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">6,670,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_d86ba1"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_97" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-01-01to2025-09-30_tomz_UnitedStatesMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,294,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_98" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-01-01to2024-09-30_tomz_UnitedStatesMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,169,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_38" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-01-01to2025-09-30_tomz_InternationalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,325,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_93" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-01-01to2024-09-30_tomz_InternationalMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,501,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_40" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2025-01-01to2025-09-30_tomz_GeographicRegionMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,619,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_95" name="us-gaap:SalesTypeLeaseRevenue" contextRef="From2024-01-01to2024-09-30_tomz_GeographicRegionMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">6,670,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:continuation></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">14</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_2ff4cb" continuedAt="cont_463914"><ix:continuation id="cont_807414"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Product revenue includes sales from our standard and customized equipment, solutions and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized when the services agreed upon are rendered to our customers at an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Estimated allowances for sales returns are recorded as sales are recognized. We use a specific identification method based on subsequent product return activity and historical average calculations to estimate the allowance for sales returns. Our allowance for sales returns as of September 30, 2025, was $<ix:nonFraction id="fid_57" name="tomz:SalesReturnsAllowanceDuringPeriod" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">90,540</ix:nonFraction> and $<ix:nonFraction id="fid_56" name="tomz:SalesReturnsAllowanceDuringPeriod" contextRef="From2024-01-01to2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">227,000</ix:nonFraction> at December 31, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Costs to Obtain a Contract with a Customer</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Contract Balances</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, and December 31, 2024, we had contract balances and unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed in the amounts of $<ix:nonFraction id="fid_54" name="tomz:RecognizeRevenue" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">309,752</ix:nonFraction> and $<ix:nonFraction id="fid_55" name="tomz:RecognizeRevenue" contextRef="From2024-01-01to2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">211,724</ix:nonFraction>, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Arrangements with Multiple Performance Obligations</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Significant Judgments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services. We also record an estimated allowance for anticipated product returns.</p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Equity Compensation Expense</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_808" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation-Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#8211;free interest rates are calculated based on continuously compounded risk&#8211;free rates for the appropriate term. The expected term of the Company&#8217;s warrants has been determined utilizing the &#8220;simplified&#8221; method for awards that qualify as &#8220;plain-vanilla&#8221; warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its common stock, par value $0.01 (the &#8220;Common Stock&#8221;) and does not intend to pay dividends on its Common Stock in the foreseeable future.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On July 7, 2017, our shareholders approved the Company&#8217;s Amended and Restated 2016 Equity Incentive Plan (the amended &#8220;2016 Plan&#8221;). The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to <ix:nonFraction id="fid_85" name="us-gaap:CommonStockSharesAuthorized" contextRef="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,000,000</ix:nonFraction> shares of Common Stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of Common Stock for numerous reasons, including, but not limited to, shares of Common Stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. During the nine months ended September<strong> </strong>30, 2025, and 2024, we issued <ix:nonFraction id="fid_65" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">60,000</ix:nonFraction> and <ix:nonFraction id="fid_110" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">60,000</ix:nonFraction> shares of Common Stock, respectively, to members of our Board out of the 2016 Plan.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">15</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_463914" continuedAt="cont_0aa89d"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Concentrations of Credit Risk</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_809" name="us-gaap:ConcentrationRiskCreditRisk" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $<ix:nonFraction id="fid_108" name="us-gaap:FederalDepositInsuranceCorporationPremiumExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">250,000</ix:nonFraction> at times during the year.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Long-Lived Assets Including Acquired Intangible Assets</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_810" name="tomz:LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the three and nine months ended September 30, 2025, and 2024.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Advertising and Promotional Expenses</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_811" name="us-gaap:AdvertisingCostsPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Advertising and promotional costs are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, advertising and promotional expenses included in selling expenses were approximately $<ix:nonFraction id="fid_947" name="us-gaap:AdvertisingExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">24,000</ix:nonFraction> and $<ix:nonFraction id="fid_63" name="us-gaap:AdvertisingExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">88,000</ix:nonFraction>, respectively. For the same periods in 2024, these expenses were approximately $<ix:nonFraction id="fid_948" name="us-gaap:AdvertisingExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">35,000</ix:nonFraction> and $<ix:nonFraction id="fid_109" name="us-gaap:AdvertisingExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">192,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Research and Development Expenses</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_812" name="us-gaap:ResearchAndDevelopmentExpensePolicy" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Research and development expenses are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, these expenses were approximately $<ix:nonFraction id="fid_949" name="us-gaap:OtherResearchAndDevelopmentExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">11,000</ix:nonFraction> and $<ix:nonFraction id="fid_950" name="us-gaap:OtherResearchAndDevelopmentExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">139,000</ix:nonFraction>, respectively. For the same periods in 2024, research and development expenses were approximately $<ix:nonFraction id="fid_951" name="us-gaap:OtherResearchAndDevelopmentExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">56,000</ix:nonFraction> and $<ix:nonFraction id="fid_952" name="us-gaap:OtherResearchAndDevelopmentExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">186,000</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Business Segments</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_813" name="us-gaap:SegmentReportingPolicyPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product in which 1) The business activities are homogenous in nature, 2) The entire operation faces similar market conditions and risks, 3) There is a high degree of integration in its operations, 4) Internal evaluations of financial results are conducted on a consolidated basis. A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above. See Note 17, Segment Reporting for more details. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Going Concern</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_814" name="tomz:GoingConcernPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_ea2228"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the nine months ended September 30, 2025, and 2024, our net loss was approximately $<ix:nonFraction id="fid_48" name="us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,943,000</ix:nonFraction> and $<ix:nonFraction id="fid_1564" name="us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0" sign="-">1,221,000</ix:nonFraction>, respectively, and the cash used in operations was approximately $<ix:nonFraction id="fid_50" name="us-gaap:NetCashProvidedByUsedInContinuingOperations" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">577,000</ix:nonFraction> and $<ix:nonFraction id="fid_1565" name="us-gaap:NetCashProvidedByUsedInContinuingOperations" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,453,000</ix:nonFraction>, respectively. As of September 30, 2025, we had approximately $<ix:nonFraction id="fid_111" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">490,000</ix:nonFraction> cash and cash equivalents and an accumulated deficit of $<ix:nonFraction id="fid_53" name="tomz:RetainedEarningAccumulatedDeficit" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="-5" sign="-" scale="6">56.2</ix:nonFraction> million. These factors raise substantial doubt about the Company&#8217;s ability to continue as a going concern within one year after the date the financial statements are issued. The Company&#8217;s consolidated financial statements have been prepared on the basis of continuity of operations, realization of assets and satisfaction of liabilities in the ordinary course of business; no adjustments have been made relating to the recoverability and classification of recorded asset amounts and classification of liabilities that might be necessary should the Company not continue as a going concern.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">16</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:continuation id="cont_0aa89d"><ix:continuation id="cont_ea2228"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Company intends to fund ongoing activities by utilizing its current cash on hand, the cash generated from operations, and by raising additional capital through equity or debt financings. There can be no assurance that the Company will be successful in raising that additional capital or that such capital, if available, will be on terms that are acceptable to us, as our ability to raise capital may be affected by various factors, including general market conditions, volatility of our stock price, investor interests and expectations, and our financial performance. </p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Recent Accounting Pronouncements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_815" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In December 2023, FASB issued ASU No. 2023-09, Improvements to Income Tax Disclosures (Topic 740). The ASU requires disaggregated information about a reporting entity&#8217;s effective tax rate reconciliation as well as additional information on income taxes paid. The ASU is effective on a prospective basis for annual periods beginning after December 15, 2024. Early adoption is also permitted for annual financial statements that have not yet been issued or made available for issuance. The Company will adopt ASU 2023-09 in its fourth quarter of 2025 using a prospective transition method.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In November 2024, FASB issued ASU No. 2024-03, Disaggregation of Income Statement Expenses (Subtopic 220-40). In January 2025, ASU No. 2025-01 was issued to clarify the effective date for all public business entities. The ASU requires the disaggregated disclosure of specific expense categories, including purchases of inventory, employee compensation, depreciation, and amortization, within relevant income statement captions. This ASU also requires disclosure of the total amount of selling expenses along with the definition of selling expenses. The ASU is effective for annual periods beginning after December 15, 2026, and interim periods within fiscal years beginning after December 15, 2027. Adoption of this ASU can either be applied prospectively to consolidated financial statements issued for reporting periods after the effective date of this ASU or retrospectively to any or all prior periods presented in the consolidated financial statements. Early adoption is also permitted. This ASU will likely result in the required additional disclosures being included in our consolidated financial statements once adopted. We are currently evaluating the provisions of this ASU.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In July 2025, FASB issued ASU No. 2025-05, Financial Instruments&#8212;Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets. The amendments in this update provide a practical expedient permitting an entity to assume that conditions at the balance sheet date remain unchanged over the life of the asset when estimating expected credit losses for current classified accounts receivable and contract assets. This update is effective for annual periods beginning after December 15, 2025, including interim periods within those fiscal years. Adoption of this ASU can be applied prospectively for reporting periods after its effective date. Early adoption is permitted. We are currently evaluating the provisions of this ASU and do not expect this ASU to have a material impact on our consolidated financial statements.</p></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_777" name="us-gaap:InventoryDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 3. INVENTORIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Inventories consist of the following at (rounded to the nearest thousandth):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_821" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Finished Goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_157" name="us-gaap:InventoryFinishedGoods" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,332,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_158" name="us-gaap:InventoryFinishedGoods" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,800,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Raw Materials</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_159" name="us-gaap:InventoryRawMaterials" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">900,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_160" name="us-gaap:InventoryRawMaterials" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">878,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventory Reserve</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_161" name="us-gaap:InventoryValuationReserves" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">868,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_162" name="us-gaap:InventoryValuationReserves" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,100,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_163" name="us-gaap:InventoryNet" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,364,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_164" name="us-gaap:InventoryNet" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,578,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our inventory reserve decreased by $232,000 during the nine months ended September 30, 2025 due to higher than anticipated equipment sales during the current fiscal year.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_778" name="tomz:VendorDepositsTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 4. VENDOR DEPOSITS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">At September 30, 2025, and December 31, 2024, we maintained vendor deposits of $<ix:nonFraction id="fid_165" name="us-gaap:Deposits" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">222,065</ix:nonFraction> and $<ix:nonFraction id="fid_166" name="us-gaap:Deposits" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">35,895</ix:nonFraction>, respectively, for open purchase orders for inventory.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">17</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_779" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 5. PROPERTY AND EQUIPMENT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Property and equipment consist of the following at:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_822" name="us-gaap:PropertyPlantAndEquipmentTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_167" name="us-gaap:FurnitureAndFixturesGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">458,652</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_168" name="us-gaap:FurnitureAndFixturesGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">458,652</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equipment</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_169" name="tomz:EquipmentsGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,316,200</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_170" name="tomz:EquipmentsGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,301,803</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vehicles</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_171" name="us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">66,170</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_172" name="us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">66,170</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer and software</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_173" name="us-gaap:CapitalizedComputerSoftwareGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">318,999</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_174" name="us-gaap:CapitalizedComputerSoftwareGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">316,334</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_175" name="us-gaap:LeaseholdImprovementsGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">393,381</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_176" name="us-gaap:LeaseholdImprovementsGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">393,381</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tenant Improvement Allowance</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_177" name="us-gaap:ConstructionInProgressGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">405,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_178" name="us-gaap:ConstructionInProgressGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">405,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total cost of Property and Equipment</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_179" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,958,402</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_180" name="us-gaap:PropertyPlantAndEquipmentGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,941,340</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated Depreciation</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_181" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,279,874</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_182" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,065,891</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and Equipment, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_183" name="us-gaap:PropertyPlantAndEquipmentOtherNet" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">678,528</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_184" name="us-gaap:PropertyPlantAndEquipmentOtherNet" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">875,449</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September<strong> </strong>30, 2025, depreciation was $<ix:nonFraction id="fid_953" name="us-gaap:Depreciation" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">60,822</ix:nonFraction> and $<ix:nonFraction id="fid_185" name="us-gaap:Depreciation" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">184,587</ix:nonFraction>, respectively. For the three and nine months ended September<strong> </strong>30, 2024, depreciation was $<ix:nonFraction id="fid_954" name="us-gaap:Depreciation" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">65,031</ix:nonFraction> and $<ix:nonFraction id="fid_186" name="us-gaap:Depreciation" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">209,751</ix:nonFraction>, respectively. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September<strong> </strong>30, 2025, and 2024, amortization of tenant improvement allowance was $<ix:nonFraction id="fid_955" name="tomz:AmortizationOfTenantImprovementAllowance" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">9,798</ix:nonFraction> and $<ix:nonFraction id="fid_187" name="tomz:AmortizationOfTenantImprovementAllowance" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">29,395</ix:nonFraction>, respectively and was recorded as lease expense and included within general and administrative expense on the consolidated statement of operations.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_780" name="us-gaap:IntangibleAssetsDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 6. INTANGIBLE ASSETS </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Intangible assets consist of patents and trademarks related to our Binary Ionization Technology. We amortize the patents over the estimated remaining lives of the related patents. Trademarks have an indefinite life. Amortization expenses were $<ix:nonFraction id="fid_957" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,766</ix:nonFraction> and $<ix:nonFraction id="fid_207" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">21,781</ix:nonFraction> for the three and nine months ended September 30, 2025, respectively. Amortization expenses were $<ix:nonFraction id="fid_958" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">4,878</ix:nonFraction> and $<ix:nonFraction id="fid_208" name="us-gaap:AmortizationOfIntangibleAssets" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">14,633</ix:nonFraction> for the three and nine months ended September 30, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Definite life intangible assets consist of the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_823" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Intellectual Property and Patents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_189" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2025-09-30_us-gaap_IntellectualPropertyMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,449,482</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_190" name="us-gaap:FiniteLivedIntangibleAssetsGross" contextRef="AsOf2024-12-31_us-gaap_IntellectualPropertyMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,350,031</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated Amortization</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_191" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2025-09-30_us-gaap_IntellectualPropertyMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,952,102</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_192" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" contextRef="AsOf2024-12-31_us-gaap_IntellectualPropertyMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,930,321</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Patents, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_193" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="AsOf2025-09-30_us-gaap_IntellectualPropertyMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">497,380</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_194" name="us-gaap:FiniteLivedIntangibleAssetsNet" contextRef="AsOf2024-12-31_us-gaap_IntellectualPropertyMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">419,710</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Indefinite life intangible assets consist of the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_824" name="us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Trademarks</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_195" name="us-gaap:IndefiniteLivedTrademarks" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">861,825</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_196" name="us-gaap:IndefiniteLivedTrademarks" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">830,864</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Intangible Assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_197" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,359,205</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_198" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,250,574</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Approximate future amortization is as follows (rounded to nearest thousand):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_825" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">October 1 - December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_200" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_201" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">28,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_202" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">28,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_203" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">28,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_206" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">28,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_204" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">378,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_205" name="tomz:FiniteLivedIntangibleAssetNet" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">497,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">18</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_781" name="us-gaap:LeasesOfLesseeDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_2d95f4"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 7. LEASES </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In April 2018, we entered into a <ix:nonNumeric id="fid_1340" name="tomz:TermLease" contextRef="From2018-04-01to2018-04-30" format="ixt-sec:duryear">10</ix:nonNumeric>-year lease agreement for a new <ix:nonFraction id="fid_1335" name="us-gaap:AreaOfLand" contextRef="AsOf2018-04-30" format="ixt:numdotdecimal" unitRef="sqft" decimals="INF">9,000</ix:nonFraction>-square-foot facility that contains office, warehouse, lab and research and development space in Frederick, Maryland. The lease agreement commenced in December 2018 when the property was ready for occupancy. The agreement provided for annual rent of $<ix:nonFraction id="fid_1336" name="us-gaap:OperatingLeasesRentExpenseNet" contextRef="From2018-04-01to2018-04-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">143,460</ix:nonFraction>, an escalation clause that increases the rent <ix:nonFraction id="fid_1337" name="tomz:MaximumIncreasesRentPercentage" contextRef="From2018-04-01to2018-04-30" unitRef="Pure" decimals="2" scale="-2">3</ix:nonFraction>% year over year, a landlord tenant improvement allowance of $<ix:nonFraction id="fid_1339" name="us-gaap:PaymentsForProceedsFromTenantAllowance" contextRef="From2018-04-01to2018-04-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">405,000</ix:nonFraction> and additional landlord work as discussed in the lease agreement. We took occupancy of the property on December 17, 2018, and the lease was amended in June 2019 to provide for a 4-month rent holiday and a commencement date of April 1, 2019. A <ix:nonFraction id="fid_1338" name="us-gaap:WorkersCompensationDiscountPercent" contextRef="From2018-04-01to2018-04-30" unitRef="Pure" decimals="2" scale="-2">7</ix:nonFraction>% discount rate was determined using our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments. Lease expense for operating lease payments is recognized on a straight-line basis over the lease term. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The balances for our operating lease where we are the lessee are presented as follows within our condensed consolidated balance sheet:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_826" name="us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025 </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Operating leases:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Assets:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1304" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">342,229</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1305" name="us-gaap:OperatingLeaseRightOfUseAsset" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">399,254</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Liabilities:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1307" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">139,917</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1308" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">129,132</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, net of current portion</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1309" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">407,781</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1310" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">513,395</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Right of Use Liability</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1311" name="us-gaap:OperatingLeaseLiability" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">547,698</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1312" name="us-gaap:OperatingLeaseLiability" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">642,527</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The components of lease expense are as follows and are included within general and administrative expense on our condensed consolidated statement of operations. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_827" name="us-gaap:LeaseCostTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Lease Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1315" name="us-gaap:OperatingLeaseExpense" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">39,329</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1316" name="us-gaap:OperatingLeaseExpense" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">39,329</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1313" name="us-gaap:OperatingLeaseExpense" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">117,986</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1314" name="us-gaap:OperatingLeaseExpense" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">117,986</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Other information related to leases where we are the lessee is as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_828" name="tomz:ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025 </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average remaining lease term:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><ix:nonNumeric id="fid_1317" name="tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:duryear">3.25</ix:nonNumeric> years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><ix:nonNumeric id="fid_1318" name="tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm" contextRef="From2024-01-01to2024-12-31" format="ixt-sec:duryear">4.00</ix:nonNumeric> years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Discount rate:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1320" name="us-gaap:LesseeOperatingLeaseDiscountRate" contextRef="AsOf2025-09-30" unitRef="Pure" decimals="2" scale="-2">7.00</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1319" name="us-gaap:LesseeOperatingLeaseDiscountRate" contextRef="AsOf2024-12-31" unitRef="Pure" decimals="2" scale="-2">7.00</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Supplemental cash flow information related to leases where we are the lessee is as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_829" name="tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Paid for amounts included in</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">the measurement of lease liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1323" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">42,825</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1324" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">41,577</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1321" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">126,395</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1322" name="us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">123,521</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">19</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_2d95f4"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September<strong> </strong>30, 2025, the maturities of our operating lease liability are as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_830" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Operating</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lease</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">October<strong> </strong>1 - December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1325" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">42,825</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1326" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">175,153</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1327" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">180,408</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1328" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">185,820</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1334" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">34,840</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Minimum Lease Payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1329" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">619,046</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1330" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">71,348</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Imputed value of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1331" name="us-gaap:CapitalLeaseObligationsCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">547,698</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Current portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1332" name="us-gaap:OperatingLeaseLiabilityCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">139,917</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term portion of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1333" name="us-gaap:OperatingLeaseLiabilityNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">407,781</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_782" name="tomz:CloudComputingServiceContractDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 8. CLOUD COMPUTING SERVICE CONTRACT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2020, we entered into a cloud computing service contract with a vendor which provided for annual payments in the amount of $<ix:nonFraction id="fid_1341" name="tomz:ProceedsFromServiceContractOfReceivables" contextRef="From2020-05-01to2020-05-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">30,409</ix:nonFraction> and expired in <ix:nonNumeric id="fid_1344" name="tomz:AnnualPaymentsOnContractExpired" contextRef="From2020-05-01to2020-05-31">May 2025</ix:nonNumeric>. The annual contract payments were capitalized as a prepaid expense and amortized over a twelve-month period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We incurred implementation costs of $<ix:nonFraction id="fid_1342" name="us-gaap:PrepaidExpenseAndOtherAssets" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">66,857</ix:nonFraction> in connection with the cloud computing service contract which were capitalized in prepaid expenses and other assets as of December 31, 2024. In accordance with ASU No. 2018-15, such implementation costs were amortized over the remaining contract terms beginning January 1, 2021, which was when the cloud-based service contract was placed in service. Amortization expense for the three and nine months ended September 30, 2025, were $<ix:nonFraction id="fid_1346" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">0</ix:nonFraction> and $<ix:nonFraction id="fid_1343" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">7,436</ix:nonFraction>, respectively. Amortization expense for the three and nine months ended September 30, 2024, were $<ix:nonFraction id="fid_1347" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,766</ix:nonFraction> and $<ix:nonFraction id="fid_1345" name="us-gaap:CostOfGoodsAndServicesSoldAmortization" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">11,297</ix:nonFraction>, respectively.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_783" name="us-gaap:DebtDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_b0ac15"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 9. CONVERTIBLE DEBT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In October and November 2023, we entered into a Securities Purchase Agreement (the &#8220;SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#8220;Private Placement&#8221;) in one or more closings up to an aggregate principal amount of $<ix:nonFraction id="fid_1357" name="us-gaap:InvestmentOwnedBalancePrincipalAmount" contextRef="AsOf2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,000,000</ix:nonFraction> of Convertible Notes (the &#8220;Notes&#8221;). In October and November 2023, we sold and issued an aggregate of $<ix:nonFraction id="fid_1371" name="tomz:ProceedsFromConvertiblePromissoryNotesIssuance" contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,600,000</ix:nonFraction> of Notes that are convertible into <ix:nonFraction id="fid_1372" name="us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,080,000</ix:nonFraction> shares of common stock at a conversion price of $<ix:nonFraction id="fid_1361" name="us-gaap:SharesIssuedPricePerShare" contextRef="AsOf2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.25</ix:nonFraction> per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Notes mature and are due on the fifth anniversary of the issuance date in October and November of 2028. The Notes bear simple interest at a rate of <ix:nonFraction id="fid_1364" name="us-gaap:DebtInstrumentInterestRateDuringPeriod" contextRef="From2023-10-01to2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" unitRef="Pure" decimals="2" scale="-2">12</ix:nonFraction>% per annum, payable in equal monthly installments. <ix:nonNumeric id="fid_1369" name="tomz:DescriptionOfConvertibleNote" contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">The Notes are convertible into shares of our Common Stock, at the option of the holder, at an initial conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement)</ix:nonNumeric>. The Notes are unsecured and senior to other indebtedness subject to certain exceptions. During the three and nine months ended September 30, 2025, interest expense related to these Notes was recorded on a straight-line basis which totaled $<ix:nonFraction id="fid_1566" name="us-gaap:InterestExpenseDebt" contextRef="From2025-07-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">78,000</ix:nonFraction> and $<ix:nonFraction id="fid_1362" name="us-gaap:InterestExpenseDebt" contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">234,000</ix:nonFraction>, respectively. During the three and nine months ended September 30, 2024, interest expense related to these Notes was recorded on a straight-line basis which totaled $<ix:nonFraction id="fid_1567" name="us-gaap:InterestExpenseDebt" contextRef="From2024-07-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">78,000</ix:nonFraction> and $<ix:nonFraction id="fid_1363" name="us-gaap:InterestExpenseDebt" contextRef="From2024-01-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">234,000</ix:nonFraction>, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the nine months ended September 30, 2025, we entered into Securities Purchase Agreements (the &#8220;SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#8220;Private Placement&#8221;) in one or more closings up to an aggregate principal amount of $<ix:nonFraction id="fid_1360" name="us-gaap:InvestmentOwnedBalancePrincipalAmount" contextRef="AsOf2025-09-30_tomz_JuneTwoThousandTwentyFiveMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,000,000</ix:nonFraction> (the &#8220;Notes&#8221;). Pursuant to the SPA and as of September 30, 2025, we sold and issued convertible promissory notes (the &#8220;Notes&#8221;) to purchase an aggregate of <ix:nonFraction id="fid_1373" name="us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">428,000</ix:nonFraction> shares of common stock at the conversion price of $<ix:nonFraction id="fid_1365" name="us-gaap:SharesIssuedPricePerShare" contextRef="AsOf2023-11-30_tomz_JuneTwoThousandTwentyFiveMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.25</ix:nonFraction> per share in exchange for aggregate gross proceeds of $<ix:nonFraction id="fid_1370" name="tomz:ProceedsFromConvertiblePromissoryNotesIssuance" contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">535,000</ix:nonFraction>.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">20</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_b0ac15"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Notes mature and are due on the fifth anniversary of the issuance date in 2030. The Notes bear simple interest at a rate of <ix:nonFraction id="fid_1367" name="us-gaap:DebtInstrumentInterestRateDuringPeriod" contextRef="From2023-10-01to2023-11-30_tomz_JuneTwoThousandTwentyFiveMember" unitRef="Pure" decimals="2" scale="-2">12</ix:nonFraction>% per annum, payable in equal monthly installments. <ix:nonNumeric id="fid_1368" name="tomz:DescriptionOfConvertibleNote" contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember">The Notes are convertible into shares of our Common Stock, at the option of the holder, at a conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement)</ix:nonNumeric>. The Notes are unsecured and senior to other indebtedness subject to certain exceptions. Interest expense related to these Notes for the three and nine months ended September 30, 2025, was $<ix:nonFraction id="fid_1568" name="us-gaap:InterestExpenseDebt" contextRef="From2025-07-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">15,550</ix:nonFraction> and $<ix:nonFraction id="fid_1366" name="us-gaap:InterestExpenseDebt" contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">28,625</ix:nonFraction>, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Amortization of deferred financing costs were $<ix:nonFraction id="fid_1376" name="us-gaap:AmortizationOfFinancingCosts" contextRef="From2025-07-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">18,323</ix:nonFraction> and $<ix:nonFraction id="fid_1358" name="us-gaap:AmortizationOfFinancingCosts" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">52,617</ix:nonFraction> for the three and nine months ended September 30, 2025, respectively which has been included with interest expense on the statement of operations. Amortization of deferred financing costs were $<ix:nonFraction id="fid_1377" name="us-gaap:AmortizationOfFinancingCosts" contextRef="From2024-07-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">15,620</ix:nonFraction> and $<ix:nonFraction id="fid_1359" name="us-gaap:AmortizationOfFinancingCosts" contextRef="From2024-01-01to2024-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">46,860</ix:nonFraction> for the three and nine months ended September 30, 2024, respectively which has been included with interest expense on the statement of operations. Additions to deferred financing costs totaled $<ix:nonFraction id="fid_1374" name="tomz:AmortizationOfFinancingCostsAdditions" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">54,058</ix:nonFraction> during the nine months ended September 30, 2025, and are being amortized on a straight-line basis over the life of the notes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Convertible notes consist of the following at:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_831" name="us-gaap:ConvertibleDebtTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1349" name="tomz:ConvertibleNotesPayableGross" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,135,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1350" name="tomz:ConvertibleNotesPayableGross" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,600,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Debt issuance costs</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1351" name="us-gaap:DebtIssuanceCostsLineOfCreditArrangementsNet" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">366,456</ix:nonFraction></td><td style="vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1352" name="us-gaap:DebtIssuanceCostsLineOfCreditArrangementsNet" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">312,398</ix:nonFraction></td><td style="vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accumulated amortization</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1353" name="us-gaap:GroundLeasesAccumulatedAmortization" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">125,509</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1354" name="us-gaap:GroundLeasesAccumulatedAmortization" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">72,892</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1355" name="us-gaap:ConvertibleNotesPayable" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,894,053</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1356" name="us-gaap:ConvertibleNotesPayable" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,360,494</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_784" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true" continuedAt="cont_8c0a95"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 10. SHAREHOLDERS&#8217; EQUITY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our Board of Directors (the &#8220;Board&#8221;) may, without further action by our shareholders, from time to time, direct the issuance of any authorized but unissued or unreserved shares of preferred stock in series and at the time of issuance, determine the rights, preferences and limitations of each series. The holders of such preferred stock may be entitled to receive a preference payment in the event of any liquidation, dissolution or winding up by us before any payment is made to the holders of our Common Stock. Furthermore, the Board could issue preferred stock with voting and other rights that could adversely affect the voting power of the holders of our Common Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Convertible Series A Preferred Stock</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our authorized Convertible Series A Preferred Stock, $<ix:nonFraction id="fid_1496" name="us-gaap:PreferredStockParOrStatedValuePerShare" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.01</ix:nonFraction> par value, consists of <ix:nonFraction id="fid_1484" name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">1,000,000</ix:nonFraction> shares. At September<strong> </strong>30, 2025, and December 31, 2024, there were <ix:nonFraction id="fid_1486" name="us-gaap:PreferredStockSharesIssued" contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">63,750</ix:nonFraction> shares issued and outstanding. The Convertible Series A Preferred Stock is convertible at the rate of one share of common stock for one share of Convertible Series A Preferred Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Convertible Series B Preferred Stock</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our authorized Convertible Series B Preferred Stock, $<ix:nonFraction id="fid_1490" name="tomz:CumulativeConvertiblePreferredStockStatedValue" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">1,000</ix:nonFraction> stated value, <ix:nonFraction id="fid_1498" name="tomz:CumulativeDividendOfPreferredStock" contextRef="From2025-01-01to2025-09-30_us-gaap_SeriesBPreferredStockMember" unitRef="Pure" decimals="3" scale="-2">7.5</ix:nonFraction>% cumulative dividend, consists of <ix:nonFraction id="fid_1482" name="us-gaap:PreferredStockSharesAuthorized" contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">4,000</ix:nonFraction> shares. At September<strong> </strong>30, 2025, and December 31, 2024, there were no shares issued and outstanding. Each share of Convertible Series B Preferred Stock may be converted (at the holder&#8217;s election) into two hundred shares of our Common Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Common Stock</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2024, we issued <ix:nonFraction id="fid_1501" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" contextRef="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFourMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">60,000</ix:nonFraction> shares of Common Stock valued at approximately $<ix:nonFraction id="fid_1500" name="us-gaap:CommonStockValue" contextRef="AsOf2025-09-30_tomz_MayTwentyTwentyFourMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">45,000</ix:nonFraction> to members of our Board pursuant to our equity plan (see Note 12).&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2025, we issued <ix:nonFraction id="fid_1499" name="us-gaap:StockIssuedDuringPeriodSharesNewIssues" contextRef="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFiveMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">60,000</ix:nonFraction> shares of Common Stock valued at approximately $<ix:nonFraction id="fid_1502" name="us-gaap:CommonStockValue" contextRef="AsOf2025-09-30_tomz_MayTwentyTwentyFiveMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">51,000</ix:nonFraction> to members of our Board pursuant to our equity plan (see Note 12).&#160;</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">21</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_8c0a95" continuedAt="cont_d59b32"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Stock Options</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2024, we issued options to purchase <ix:nonFraction id="fid_1503" name="tomz:WarrantsIssuedUponPurchaseShareOfCommonStock" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">225,000</ix:nonFraction> shares of Common Stock to Officers at an exercise price of $<ix:nonFraction id="fid_1504" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" contextRef="AsOf2024-05-31_tomz_MayTwentyTwentyFourMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.75</ix:nonFraction> per share pursuant to an employment agreement. The options were valued at $<ix:nonFraction id="fid_1505" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">144,308</ix:nonFraction> and have a contractual term of <ix:nonNumeric id="fid_1506" name="us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" format="ixt-sec:duryear">10</ix:nonNumeric> years. We utilized the Black-Scholes model to fair value the options received by Officers with the following assumptions: volatility, <ix:nonFraction id="fid_1507" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" unitRef="Pure" decimals="2" scale="-2">125</ix:nonFraction>%; expected dividend yield, <ix:nonFraction id="fid_1508" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" unitRef="Pure" decimals="0" scale="-2">0</ix:nonFraction>%; risk free interest rate, <ix:nonFraction id="fid_1509" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" unitRef="Pure" decimals="4" scale="-2">4.35</ix:nonFraction>%; and a contractual term of <ix:nonNumeric id="fid_1510" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" format="ixt-sec:duryear">10</ix:nonNumeric> years. The grant date fair value of each share of Common Stock underlying the options was $<ix:nonFraction id="fid_1511" name="tomz:GrantFairValueOfPerShare" contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.64</ix:nonFraction>.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table summarizes stock options outstanding as of September<strong> </strong>30, 2025, and December 31, 2024:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_832" name="us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;<strong>December 31, </strong><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1379" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">805,042</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1386" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.23</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1378" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2023-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">617,542</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1385" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2023-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.38</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1387" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember" format="ixt:zerodash" unitRef="USDPShares" decimals="INF">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1380" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">225,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1388" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.75</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1389" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember" format="ixt:zerodash" unitRef="USDPShares" decimals="INF">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1394" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">31,250</ix:nonFraction></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1390" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.88</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1382" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">36,250</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1391" name="tomz:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF" sign="-">1.04</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1383" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">6,250</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1392" name="tomz:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.80</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1395" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">768,792</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1396" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.24</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1384" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">805,042</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1393" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2024-12-31_us-gaap_StockOptionMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.23</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Options outstanding and exercisable by price range as of September<strong> </strong>30, 2025, were as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_833" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining </strong><strong>Contractual</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"/><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted </strong><strong>Average</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Range</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.71</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1398" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">7,042</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1406" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenOneMember" format="ixt-sec:duryear">2.31</ix:nonNumeric></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1414" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">7,042</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1422" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.71</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.75</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1399" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">225,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1407" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenFiveMember" format="ixt-sec:duryear">8.63</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1415" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">225,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1423" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.75</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1400" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1408" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightZeroMember" format="ixt-sec:duryear">2.32</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1416" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1424" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.80</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.85</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1401" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">210,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1409" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightFiveMember" format="ixt-sec:duryear">7.33</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1417" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">210,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1425" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.85</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1402" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">270,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1410" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeOnePointOneTwoMember" format="ixt-sec:duryear">6.30</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1418" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">270,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1426" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.12</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.93</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1403" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">10,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1411" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeOnePointNineThreeMember" format="ixt-sec:duryear">1.21</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1419" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">10,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1427" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.93</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.40</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1404" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">12,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1412" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeFourPointFourZeroMember" format="ixt-sec:duryear">0.34</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1420" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">12,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1428" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">4.40</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.06</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1405" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">31,250</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1413" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_RangeSevenPointZeroSixMember" format="ixt-sec:duryear">0.01</ix:nonNumeric></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1421" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">31,250</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1429" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">7.06</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1433" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">768,792</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1432" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30" format="ixt-sec:duryear">6.81</ix:nonNumeric></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1431" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">768,792</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1430" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.24</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Stock Warrants</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table summarizes the outstanding common stock warrants as of September<strong> </strong>30, 2025 and December 31, 2024:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_834" name="us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025 </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1435" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2024-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,765,846</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1440" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2024-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">2.26</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1434" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2023-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,772,096</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1439" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2023-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">2.25</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1441" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember" format="ixt:zerodash" unitRef="USDPShares" decimals="INF">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1442" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember" format="ixt:zerodash" unitRef="USDPShares" decimals="INF">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1443" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember" format="ixt:zerodash" unitRef="USDPShares" decimals="INF">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1444" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember" format="ixt:zerodash" unitRef="USDPShares" decimals="INF">-</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1436" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">161,458</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1445" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.19</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1437" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">6,250</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1446" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.12</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1448" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,604,388</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1449" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">2.32</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1438" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2024-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,765,846</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1447" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" contextRef="AsOf2024-12-31_tomz_WarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">2.26</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">22</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:continuation id="cont_d59b32"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Warrants outstanding and exercisable by price range as of September<strong> </strong>30, 2025, were as follows:<strong>&#160;</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_835" name="tomz:ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><strong>Average Weighted</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.64</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1450" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">31,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1474" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">8.14</ix:nonNumeric></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1458" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">31,250</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1466" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.64</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1451" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">125,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1475" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">8.33</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1459" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">125,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1467" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.80</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1452" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">437,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1476" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">7.23</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1460" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">437,500</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1468" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.96</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.68</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1453" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">1,434,721</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1478" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">0.99</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1461" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">1,434,721</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1469" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">1.68</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.18</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1454" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">172,167</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1477" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">0.99</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1462" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">172,167</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1470" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">2.18</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1455" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">28,750</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1479" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">4.57</ix:nonNumeric></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1463" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">28,750</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1471" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">4.00</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">6.95</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1456" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">375,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1480" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember" format="ixt-sec:duryear">5.01</ix:nonNumeric></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1464" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">375,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1472" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">6.95</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1457" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" contextRef="AsOf2025-09-30_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,604,388</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonNumeric id="fid_1481" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" contextRef="From2025-01-01to2025-09-30_tomz_StockWarrantsMember" format="ixt-sec:duryear">3.10</ix:nonNumeric></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1465" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" contextRef="AsOf2025-09-30_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">2,604,388</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1473" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" contextRef="AsOf2025-09-30_tomz_StockWarrantsMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">2.32</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">There were no unvested warrants outstanding as of September<strong> </strong>30, 2025.</p></ix:continuation><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_785" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 11. COMMITMENTS AND CONTINGENCIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Legal Contingencies</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We may become a party to litigation in the normal course of business.&#160;In the opinion of management, there are no legal matters involving us that would have a material adverse effect upon our financial condition, results of operations or cash flows. In addition, from time to time, we may have to file claims against parties that infringe on our intellectual property.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Product Liability</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September<strong> </strong>30, 2025, and December 31, 2024, there were no claims against us for product liability.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_786" name="tomz:ContractsAndAgreementsTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 12. CONTRACTS AND AGREEMENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Employment Agreement &#8211; Chief Financial Officer</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On May 30, 2025, the Board of Directors of the Company appointed Mr. David Vanston as the Company&#8217;s Chief Financial Officer, effective immediately. The appointment was made following the expiration of Mr. Nick Jennings&#8217;s offer letter to serve as the Interim Chief Financial Officer, as previously disclosed by the Company. &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In connection with his appointment, the Company entered into an offer letter with Mr. Vanston providing for an annual base salary of $<ix:nonFraction id="fid_1571" name="us-gaap:SalariesAndWages" contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">230,000</ix:nonFraction> and eligibility to receive an annual discretionary bonus of up to <ix:nonFraction id="fid_1572" name="tomz:DiscretionaryBonus" contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember" unitRef="Pure" decimals="1" scale="-2">40</ix:nonFraction>% of his base salary. Mr. Vanston is also entitled to receive an initial grant of <ix:nonFraction id="fid_1573" name="us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross" contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">100,000</ix:nonFraction> restricted stock units and an additional grant of <ix:nonFraction id="fid_1574" name="tomz:AdditionalRestrictedStockGranted" contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">100,000</ix:nonFraction> restricted stock units following one year of employment, each subject to a three-year vesting schedule. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Director Compensation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The annual fee to the non-employees of our Board was $<ix:nonFraction id="fid_1569" name="us-gaap:SalariesAndWages" contextRef="From2025-01-01to2025-09-30_tomz_ExecutiveAgreementsWithElissaJShaneMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">48,000</ix:nonFraction>, to be paid in cash on a quarterly basis, with the exception of the audit committee chairperson, whose annual fee was $<ix:nonFraction id="fid_1570" name="us-gaap:PaymentForManagementFee" contextRef="From2025-01-01to2025-09-30_tomz_CommitteeChairpersonMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">54,600</ix:nonFraction>, also to be paid in cash on a quarterly basis. Non-employee Director compensation also includes the annual issuance of our Common Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During October 2025, the Company revised its director compensation (Refer to Note 19 &#8211; Subsequent events).</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">23</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_787" name="us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Accrued expenses and other current liabilities consisted of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><ix:nonNumeric id="fid_836" name="us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commissions</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1519" name="us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">178,932</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1518" name="us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">187,151</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Payroll and related costs </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1521" name="us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">488,968</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1520" name="us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">125,773</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Director fees&#160;&#160;&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1522" name="tomz:DirectorFeesCurrentAndNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">37,650</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1523" name="tomz:DirectorFeesCurrentAndNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">37,650</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales Tax Payable&#160;&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1525" name="tomz:SalesTaxPayable" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">2,575</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1524" name="tomz:SalesTaxPayable" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">3,864</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued warranty (Note 14)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1527" name="us-gaap:ExtendedProductWarrantyAccrualCurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">22,648</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1526" name="us-gaap:ExtendedProductWarrantyAccrualCurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">30,000</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses and current liabilities</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1529" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">97,950</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1528" name="us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">71,237</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1531" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">828,723</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1530" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">455,675</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_788" name="us-gaap:ProductWarrantyDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 14. ACCRUED WARRANTY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. The warranty is generally limited to a refund of the original purchase price of the product or a replacement part. We estimate warranty costs based on historical warranty claim experience.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table presents warranty reserve activities at:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_837" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Beginning accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1533" name="us-gaap:ExtendedProductWarrantyAccrual" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">30,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1532" name="us-gaap:ExtendedProductWarrantyAccrual" contextRef="AsOf2023-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">30,000</ix:nonFraction></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for warranty expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1535" name="us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">15,637</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1534" name="us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease" contextRef="From2024-01-01to2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">9,707</ix:nonFraction></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Settlement of warranty claims</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1537" name="tomz:SettlementOfWarrantyClaims" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">22,989</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(<ix:nonFraction id="fid_1536" name="tomz:SettlementOfWarrantyClaims" contextRef="From2024-01-01to2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">9,707</ix:nonFraction></td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Ending accrued warranty costs</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1538" name="us-gaap:ExtendedProductWarrantyAccrual" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">22,648</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"><ix:nonFraction id="fid_1539" name="us-gaap:ExtendedProductWarrantyAccrual" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">30,000</ix:nonFraction></td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table></ix:nonNumeric></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_789" name="us-gaap:IncomeTaxDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 15. INCOME TAXES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September 30, 2025, and 2024, our provision for income tax was $0. Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits, which are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes. As of September 30, 2025, and December 31, 2024, we recorded a valuation allowance of $<ix:nonFraction id="fid_1542" name="us-gaap:DeferredTaxAssetsValuationAllowance" contextRef="AsOf2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">9,223,000</ix:nonFraction> and $<ix:nonFraction id="fid_1540" name="us-gaap:DeferredTaxAssetsValuationAllowance" contextRef="AsOf2024-12-31" format="ixt:numdotdecimal" unitRef="USD" decimals="0">8,678,000</ix:nonFraction>, respectively for the portion of the deferred tax assets that we do not expect to be realized. Management believes that based on the available information, <ix:nonNumeric id="fid_1541" name="tomz:USDeferredTaxAssetsValuationAllowanceDescription" contextRef="From2025-01-01to2025-09-30">it is more likely than not that the remaining U.S. deferred tax assets will not be realized, such that a 100% valuation allowance is required against U.S. deferred tax assets</ix:nonNumeric>.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_790" name="us-gaap:ConcentrationRiskDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 16. CUSTOMER CONCENTRATION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Company had certain customers whose accounts receivable balances individually represented <ix:nonFraction id="fid_1578" name="tomz:RevenueConcentrationRiskPercentage" contextRef="From2025-01-01to2025-09-30" unitRef="Pure" decimals="1" scale="-2">10</ix:nonFraction>% or more of the Company&#8217;s accounts receivable, and whose sales for the three and nine months represented <ix:nonFraction id="fid_1576" name="tomz:RevenueConcentrationRiskPercentage" contextRef="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember" unitRef="Pure" decimals="1" scale="-2">10</ix:nonFraction>% or more of the Company&#8217;s revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">One customer accounted for <ix:nonFraction id="fid_1582" name="tomz:AccountsReceivableConcentrationRiskPercentage" contextRef="From2025-07-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="2" scale="-2">23</ix:nonFraction>% of net revenue for the three months ended September 30, 2025. Two customers accounted for <ix:nonFraction id="fid_1583" name="tomz:AccountsReceivableConcentrationRiskPercentage" contextRef="From2024-07-01to2024-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="2" scale="-2">12</ix:nonFraction>% of net revenue for the three months ended September 30, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">One customer accounted for <ix:nonFraction id="fid_1580" name="tomz:AccountsReceivableConcentrationRiskPercentage" contextRef="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="2" scale="-2">12</ix:nonFraction>% of net revenue for the nine months ended September 30, 2025. One customer accounted for <ix:nonFraction id="fid_1923" name="tomz:AccountsReceivableConcentrationRiskPercentage" contextRef="From2024-01-01to2024-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="2" scale="-2">18</ix:nonFraction>% of net revenue for the nine months ended September 30, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, two customers accounted for <ix:nonFraction id="fid_1581" name="tomz:AccountsReceivableConcentrationRiskPercentage" contextRef="From2025-01-01to2025-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="1" scale="-2">40</ix:nonFraction>% of our gross accounts receivable. As of December 31, 2024, two customers accounted for <ix:nonFraction id="fid_1575" name="tomz:AccountsReceivableConcentrationRiskPercentage" contextRef="From2024-01-01to2024-12-31_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember" unitRef="Pure" decimals="2" scale="-2">25</ix:nonFraction>% of our gross accounts receivable.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">24</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><ix:nonNumeric id="fid_791" name="us-gaap:SegmentReportingDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 17. SEGMENT REPORTING</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our Chief Executive Officer, as the CODM, organizes our Company, manages resource allocations and measures performance among one operating and reportable segment due to the fact that we derive our revenue primarily from one product (equipment and service revenue based on our patented BIT technology). A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above. We evaluated the aggregation criteria in ASC 280-10-50-11 which states that aggregation can be considered if segments are similar in certain areas, including the nature of products and services, production processes, type of class of customer, and future economic performance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our CODM is regularly provided with more detailed expense information than what is included in our consolidated income statement. The CODM considers monthly budgets and cash flow projections, gross margins for each project, and our consolidated net income (loss) as reported on the income statement when allocating resources and assessing our performance. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_793" name="tomz:EmployeeRetentionCreditsDisclosureTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 18. EMPLOYEE RETENTION CREDITS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the nine months ended September 30, 2025, the Company recorded refunds as a result of Employee Retention Credits (ERC), which are refundable tax credits against certain employment taxes initially made available under the Coronavirus Aid, Relief, and Economic Security Act (the &#8220;CARES&#8221; Act). In accordance with the Company&#8217;s accounting policy, the ERC payments have been recognized as Other Income as the Company determined that all relevant criteria for recognition had been met. The ERC represents a one-time benefit and does not constitute recurring operational revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the nine months ended September 30, 2025, we recorded $<ix:nonFraction id="fid_1551" name="us-gaap:OtherIncome" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">534,912</ix:nonFraction> in employee retention credits and $<ix:nonFraction id="fid_1553" name="us-gaap:InterestIncomeOther" contextRef="From2025-01-01to2025-09-30" format="ixt:numdotdecimal" unitRef="USD" decimals="0">81,887</ix:nonFraction> related interest within other income and interest income, respectively, in our consolidated statement of operations. This consists of refund claims filed on amended Forms 941-X for the second, third and fourth quarters of 2020, and the first two quarters of 2021.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><ix:nonNumeric id="fid_792" name="us-gaap:SubsequentEventsTextBlock" contextRef="From2025-01-01to2025-09-30" escape="true"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 19. SUBSEQUENT EVENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During October 2025, the Compensation Committee approved a change to our director compensation whereby each non-employee director of the Board will be granted <ix:nonFraction id="fid_1584" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">40,000</ix:nonFraction> RSUs effective as of the date of the 2025 Annual Meeting of Stockholders (the &#8220;RSU grant&#8221;); the non-employee directors are entitled to receive one share of Common Stock for each RSU upon vesting; and <ix:nonNumeric id="fid_1591" name="tomz:DescriptionOfVestingRestricatedStockUnits" contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember">the RSU grant will vest in full upon the earlier of (i) the first anniversary of the date of grant and (ii) immediately prior to the annual meeting of shareholders that occurs following the date of grant, subject to the non-employee director&#8217;s continued service to the Company through such vesting date</ix:nonNumeric>. In addition, director fees are now reduced to $<ix:nonFraction id="fid_1585" name="tomz:DirectorFees" contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">5,000</ix:nonFraction> per quarter, commencing in the fourth quarter of fiscal year 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During October 2025, the Committee also approved the grant to our CFO of an award of <ix:nonFraction id="fid_1586" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">100,000</ix:nonFraction> RSUs under the Plan, with such RSUs to vest over the next <ix:nonNumeric id="fid_1587" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember" format="ixt-sec:duryear">3</ix:nonNumeric> years, subject to his continued service with the Company through each applicable vesting date.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On November 5, 2025, we entered into an Equity Purchase Agreement (the &#8220;Purchase Agreement&#8221;) with Hudson Global Ventures, LLC (&#8220;Hudson&#8221;), pursuant to which and upon the terms and subject to the conditions set forth therein, the Company has the right, but not the obligation, to sell to Hudson up to $<ix:nonFraction id="fid_1588" name="tomz:EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" contextRef="From2025-11-01to2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember" format="ixt:numdotdecimal" unitRef="USD" decimals="0">20,000,000</ix:nonFraction> of shares of its common stock, par value $<ix:nonFraction id="fid_1589" name="us-gaap:CommonStockNoParValue" contextRef="AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember" format="ixt:numdotdecimal" unitRef="USDPShares" decimals="INF">0.01</ix:nonFraction> per share (the &#8220;Common Stock&#8221;), from time to time over a 24-month period (the &#8220;Commitment Period&#8221;). Concurrently with entering into the Purchase Agreement, the Company also entered into a Registration Rights Agreement (the &#8220;Registration Rights Agreement&#8221;) with Hudson, pursuant to which the Company agreed to register the issuances and sales of shares of Common Stock under the Purchase Agreement, the Registrable Securities (as defined in the Registration Rights Agreement), pursuant to a registration statement to be filed under the Securities Act of 1933, as amended.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">At any time and from time to time during the Commitment Period, on any business day selected by the Company, the Company may direct Hudson to purchase shares of its Common Stock by delivering a written notice (a &#8220;Put Notice&#8221;). The purchase price per share for each purchase of shares subject to a Put Notice will be equal to the lesser of (i) 92% of the average of the three lowest trading prices of the Common Stock on the Nasdaq Capital Market during the ten trading days immediately preceding the Put Date and (ii) 92% of the lowest closing price of the Common Stock during the Valuation Period as defined in the Purchase Agreement.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Under applicable Nasdaq rules, the Company may not issue or sell to Hudson under the Purchase Agreement shares of Common Stock in excess of <ix:nonFraction id="fid_1592" name="tomz:ExcessInCommonStockPercentage" contextRef="From2025-11-01to2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember" unitRef="Pure" decimals="4" scale="-2">19.99</ix:nonFraction>% of the shares of Common Stock outstanding immediately prior to the execution of the Purchase Agreement (the &#8220;Exchange Cap&#8221;) without first obtaining stockholder approval as required by Nasdaq Rule 5635(d). The Company is not obligated to sell any shares to Hudson under the Purchase Agreement, and Hudson is not obligated to purchase any shares that would exceed the Exchange Cap. Pursuant to the Purchase Agreement, the Company agrees to issue <ix:nonFraction id="fid_1590" name="tomz:CommonStockIsuable" contextRef="AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember" format="ixt:numdotdecimal" unitRef="Shares" decimals="0">52,000</ix:nonFraction> shares of Common Stock to Hudson as Commitment Shares in consideration for Hudson&#8217;s commitment to enter into the transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Purchase Agreement contains customary representations, warranties, covenants, and closing conditions. The Company may terminate the Purchase Agreement at any time by written notice to Hudson, subject to certain limitations.</p></ix:nonNumeric><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">25</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p1i2">2. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"><em>This Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations (this &#8220;MD&amp;A&#8221;) and other parts of this Quarterly Report on Form 10-Q (&#8220;Form 10-Q&#8221;) contain forward-looking statements, within the meaning of the Private Securities Litigation Reform Act of 1995, that involve risks and uncertainties. Forward-looking statements provide current expectations of future events based on certain assumptions and include any statement that does not directly relate to any historical or current fact. Forward-looking statements can also be identified by words such as &#8220;future,&#8221; &#8220;anticipates,&#8221; &#8220;believes,&#8221; &#8220;estimates,&#8221; &#8220;expects,&#8221; &#8220;intends,&#8221; &#8220;plans,&#8221; &#8220;predicts,&#8221; &#8220;will,&#8221; &#8220;would,&#8221; &#8220;could,&#8221; &#8220;can,&#8221; &#8220;may,&#8221; and similar terms. Forward-looking statements involve known and unknown risks and uncertainties, which could cause actual results to differ materially from those contained in any forward-looking statement. Forward-looking statements are not guaranteeing future performance and the TOMI Environmental Solutions, Inc. (the &#8220;Company,&#8221; &#8220;TOMI,&#8221; &#8220;we,&#8221; and &#8220;our&#8221;) actual results may differ significantly from the results discussed in the forward-looking statements. Factors that might cause such differences include, but are not limited to, those discussed in Part I, Item 1A of the Company&#8217;s annual report on Form 10-K for the year ended December 31, 2024, filed with the U.S. Securities and Exchange Commission (the &#8220;SEC&#8221;) on April 14, 2025, as amended (the &#8220;Annual Report&#8221;) under the heading &#8220;Risk Factors.&#8221; The Company assumes no obligation to revise or update any forward-looking statements for any reason, except as required by law.</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"><em>Unless otherwise stated, all information presented herein is based on the Company&#8217;s fiscal calendar, and references to years, quarters, months or periods refer to the Company&#8217;s fiscal years ended in December and the associated quarters, months and periods of those fiscal years. Each of the terms the &#8220;Company&#8221; and &#8220;TOMI&#8221; as used herein refers collectively to TOMI Environmental Solutions, Inc. unless otherwise stated.</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"><em>The following MD&amp;A should be read in conjunction with the Annual Report filed with the SEC and the condensed consolidated financial statements and accompanying notes included in Part I, Item 1 of this Form 10-Q.</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Quarterly Highlights</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Business and Financial Update</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The third quarter of 2025 delivered improved financial results as we achieved 95% growth in revenue over the second quarter of 2025, and we continue to see positive trends in the market with demand for our product lines and recurring sales. The growth in the third quarter revenue was primarily attributable to increased purchases of mobile equipment by our commercial service provider customers and our enhanced integration capabilities, while maintaining our custom engineered solutions. We believe that maintaining and expanding the use of our technology for our service providers, coupled with continued growth quarter over quarter in submissions of bids for integration and custom installations, and the building of our sales and technical teams, will drive increased adoption of our SteraMist iHP technology across all our registered industries and geographies.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, our sales order backlog totaled approximately $0.9 million, which further increased to $1.3 million as of October 31, 2025. We are actively negotiating an additional $2 - $3 million in potential new contracts expected to close prior to year-end, reinforcing the strength of our business pipeline.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Revenue for the three months ended September 30, 2025, was $2,012,000, down 21% from $2,542,000 in the three months ended September 30, 2024. This was primarily driven by a timing reduction in iHP service sales from FY 2024 as a key customer restructured one of their sites during the prior year. This impact is temporary, and the customers&#8217; operations and related service activity are expected to resume on a normal schedule. Importantly, year-to-date service demand remains robust, with quote activity and pipeline volume up approximately 35% year-over-year, particularly in Life Sciences and Food Safety. This trend supports our expectation for continued growth in the fourth quarter and beyond.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Gross profit margins remained strong at 61 % as a percentage of sales for the three months ended September 30, 2025, and for the same period last year. The consistency of the gross profit margins underscores the resilience of our product mix and disciplined cost management.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the third quarter of 2025, our operating expenses increased by $141,000, or 10%, compared to the third quarter of 2024. The increase was primarily due to higher professional fees being offset by reduced selling expenses when compared to the same prior period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">26</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our iHP technology continues to gain market recognition as the preferred decontamination solution for pharmaceutical, biotech and now aerospace applications. We successfully completed multiple high-profile installations this year; including but not limited to NASA&#8217;s Johnson Space Center, Virigina Commonwealth University (VCU), and University of Miami. These projects demonstrate the adaptability of our technology in high-containment environments. Underscoring TOMI&#8217;s competitive advantage, having successfully outperformed key hydrogen peroxide and harsh chemical gaseous competitors.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Automated, repeatable, and validated decontamination rooms and chambers continue to be in high demand as the pharmaceutical industry evolves. We believe our iHP technology is emerging as a benchmark for sterile environments, as evidenced by its adoption this year at companies such as AbbVie, Bausch &amp; Lomb and others. As of the third quarter, the onshoring of pharmaceutical production positions us favorably in Virginia for the next few years, particularly with major commitments from Merck, Eli Lilly, and AstraZeneca who are establishing new production sites. Additionally, there is a strong industry push toward continuous bioprocessing, flexible and modular facilities, and AI-enabled manufacturing, all of which require decontamination systems that integrate seamlessly with automation and minimize downtime&#8212;such as our SteraMist Integrated Systems (SIS), Hybrid, and Custom Engineered System (CES).</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our OEM partnership with Pharma Biotech System Components LLC/Pharma Biotech System Components Ltd (PBSC), further strengthens our product mix and route to market, enabling us to integrate our SteraMist Integrated System (SIS) product into advanced high containment, material decontamination, and cleanroom solutions. We expect to commence our first collaboration installation in the fourth quarter of 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We are continuing to see revenue growth amongst our distributors, and international partners, particularly in Europe, positioning us for continued growth and expansion, as we work towards finalizing our pending regulatory approvals in the EU and UK.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In evaluating sales related performance, management analyzes our revenue recognized for GAAP purposes which is presented in our quarterly and annual statement of operations as well as our sales orders we receive from customers during those same accounting periods. We define a &#8220;sales order&#8221; as a document we generate for our internal use in processing a customer order. Our sales orders essentially translate the format of the customer purchase orders we receive from our customers into the format used by us. We also evaluate our &#8220;customer sales backlog&#8221; which is defined as pending sales orders where revenue has not yet been recognized. Management believes analyzing the sales order and backlog metrics are useful in measuring our overall sales and business development performance as it gauges the overall volume of sales and business development activities. We also disclosed the expected amount of potential sales under contract or in current negotiation with customers, and such amount may be subject to risks and uncertainties as negotiation may not result in any order or enforceable contract.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Business Highlights and Recent Events</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Positive Impact of New FDA Rule on our Food Safety Market</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The FDA&#8217;s final rule broadening the permitted use of hydrogen peroxide (H&#8322;O&#8322;) as a direct food additive, including its recent expansion as a secondary direct food additive, is expected to positively impact our positioning in the food safety market. This regulatory change opens the door for using our iHP technology directly on food contact surfaces and the food products themselves, particularly in the ready-to-eat (RTE) segment, which represents a key focus area for SteraMist. We have observed significant momentum in the food industry, with customers expressing interest in applying our technology across various aspects of processing. Additionally, we have received interest from several universities in conducting studies on the direct treatment of food to reduce microbial loads or allergen residues. We believe this interest may continue to grow in the future, driven by industry trends toward 'natural' food additives and colorings.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Hudson Global Ventures Equity Purchase Agreement</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On November 5, 2025, we entered into the Purchase Agreement with Hudson pursuant to which and upon the terms and subject to the conditions set forth therein, the Company has the right, but not the obligation, to sell to Hudson up to $20,000,000 of shares of its Common Stock, over the Commitment Period. Concurrently with entering into the Purchase Agreement, the Company also entered into a Registration Rights Agreement with Hudson, pursuant to which the Company agreed to register the issuances and sales of shares of Common Stock under the Purchase Agreement, the Registrable Securities (as defined in the Registration Rights Agreement), pursuant to a registration statement to be filed under the Securities Act of 1933, as amended.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">27</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">At any time and from time to time during the Commitment Period, on any business day selected by the Company, the Company may direct Hudson to purchase shares of its Common Stock by delivering a Put Notice. The purchase price per share for each purchase of shares subject to a Put Notice will be equal to the lesser of (i) 92% of the average of the three lowest trading prices of the Common Stock on the Nasdaq Capital Market during the ten trading days immediately preceding the Put Date and (ii) 92% of the lowest closing price of the Common Stock during the Valuation Period as defined in the Purchase Agreement.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Under applicable Nasdaq rules, the Company may not issue or sell to Hudson under the Purchase Agreement shares of Common Stock in excess of 19.99% of the shares of Common Stock outstanding immediately prior to the execution of the Purchase Agreement (the &#8220;Exchange Cap&#8221;) without first obtaining stockholder approval as required by Nasdaq Rule 5635(d). The Company is not obligated to sell any shares to Hudson under the Purchase Agreement, and Hudson is not obligated to purchase any shares that would exceed the Exchange Cap. Pursuant to the Purchase Agreement, the Company agrees to issue 52,000 shares of Common Stock to Hudson as Commitment Shares in consideration for Hudson&#8217;s commitment to enter into the transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Purchase Agreement contains customary representations, warranties, covenants, and closing conditions. The Company may terminate the Purchase Agreement at any time by written notice to Hudson, subject to certain limitations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"><strong><em>2025 Events:</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On January 10, 2025, we announced that we are supporting partners and clients preparing for emerging public health threats as concerns grow over Respiratory Syncytial Virus (RSV), Human Metapneumovirus (HMPV), and the highly pathogenic Avian Influenza (H5N1). TOMI is leveraging its SteraMist technology to provide innovative infection prevention strategies essential to safeguard the health of government agencies, commercial clients, and school districts nationwide.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On January 30, 2025, we announced positive momentum in early revenue trends for the Company with year-over-year growth in its BIT Solution sales and iHP Corporate Service.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On February 4, 2025, we announced the deployment of our SteraMist iHP technology to support recovery efforts in California communities impacted by recent wildfires.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On February 27, 2025, we announced we achieved compliance, recognition and validation by a third vendor management and compliance management platform, Avetta, reflecting the Company&#8217;s commitment to health, safety, and environmental (HSE) excellence for its customers. In April of 2024, we received the Gold Safety Award from Highwire. Affiliations with Avetta, Highwire, and ISNetworld platforms opens new avenues for TOMI to engage with a broader network of industry leaders and stakeholders. The collaboration fosters a culture of continuous improvement, enabling TOMI to enhance its service and integration offerings and stay ahead of evolving industry standards.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On March 6, 2025, we announced that Dr. Halden Shane, Chairman of the Board and Chief Executive Officer of TOMI, will be participating in the Q1 Investor Summit Event, which was held virtually on March 11, 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On March 20, 2025, we announced the deployment of SteraMist iHP technology at the NASA Johnson Space Center, marking the Company&#8217;s expansion into the aerospace sector.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On March 21, 2025, we announced the expansion into Aquaculture with new partner, Algafeed.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On March 24, 2025, we announced a contract to install a SteraMist iHP CES at a leading university in Rhode Island, valued at approximately $450,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On March 25, 2025, we announced an OEM partnership with PBSC, a premier manufacturer specializing in high containment, material decontamination, and cleanroom solutions.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On June 12, 2025, we announced that SteraMist was honored with the prestigious 2025 &#8220;Disinfection and Decontamination Products Company of the Year&#8221; award.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">28</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On June 16, 2025, we announced the advancement of our new product line, the SteraMist Integration System with the Standalone or SIS-SA making its debut as the first system installed with a leading CDMO.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On June 23, 2025, we announced the demonstration of SteraMist efficacy in combating Honeybee Colony collapse. Honeybees are essential pollinators, contributing $20&#8211;30 billion annually to the U.S. agricultural economy and $387 billion globally. The USDA and industry stakeholders continue to search for scalable, effective tools to mitigate this crisis. With SteraMist, TOMI is now positioned to play a key role in protecting global food security through environmental biosecurity in years to come.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On July 16, 2025, we announced the successful first installation of our new SteraMist Integration System &#8211; Standalone (SIS-SA) in the life sciences sector, beginning with pharmaceutical isolator market. Since this announcement, we have successfully integrated SteraMist iHP in two additional enclosures and anticipate a strong pipeline for further installations with both current and new manufacturing partners.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On August 11, 2025, we announced an additional win by our East Coast distributor, Ares Scientific, with a new university client and our SIS platform offerings. These developments further strengthen our pipeline in the academic vertical and acceptance to our SIS line.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On August 12, 2025, we announced a major new customer for the year. A key highlight from the announcement was the addition of a major company&#8212;comparable to Pfizer and Merck in the eye health industry&#8212;to our platform adopters. This client not only implemented SteraMist iHP technology at two site facilities in less than four months but has also placed open BIT Solution orders for 2026, which we expect to support ongoing revenue growth in this important sector in need of sterility.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On September 4, 2025, we announced our presence at the H.C. Wainwright Annual Global Investment Conference.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On September 16, 2025, we announced participation in the iAccess Alpha Virtual Best Ideas Fall Investment Conference 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On September 16, 2025, we announced the appointment of Francesco Fragasso to our Board of Directors.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On September 18, 2025, we announced FDA broadens permitted use of Hydrogen Peroxide; Ruling significantly expands potential application of SteraMist iHP.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On September 24, 2025, we announced a specialized service provider for Healthcare and Mold Remediation. This was the first of three major service provider companies we onboarded in Quarter 3, all of which have shown strong potential for expanded use of SteraMist iHP technology in their franchises. Our SteraMist Pro Certified program continues to be well received, supporting our efforts to finally build a robust network of certified partners.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Intellectual Property</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our intellectual property (IP) portfolio represents a key strategic asset, supporting our global leadership in disinfection and decontamination technologies. We currently hold or have pending over 25 utility or design patents worldwide, providing protection for both the methods and systems underlying our SteraMist&#174; BIT&#8482; platform. Our U.S. patents extend protection through 2038.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Recent additions to our portfolio include patents for backpack decontamination units, mobile carts, and applicator technology in the United States, along with new protection in Singapore, Korea, and other jurisdictions. We continue to pursue additional filings to broaden our coverage across Europe, China, and Australia.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We also hold more than 30 design patents for our decontamination devices; covering applicators, chambers, carts, and surface-mounted systems; across major global markets including the United States, China, Japan, Korea, and the United Kingdom.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">29</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In addition, we maintain a robust trademark portfolio with over 200 trademarks registered or pending in multiple classes and countries. These marks cover the full range of our activities; from chemical formulations and sterilization equipment to services and training; reinforcing TOMI&#8217;s global brand presence.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Together, these patents and trademarks provide a comprehensive intellectual property framework that protects our core technology, supports market expansion, and strengthens our competitive position in critical sectors such as life sciences, aerospace, and biosecurity.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Financial Operations Overview</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our financial position as of September<strong> </strong>30, 2025 and December 31, 2024, respectively, was as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total shareholders' equity</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">2,206,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">4,099,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash and Cash Equivalents</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">490,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">665,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Deferred Revenue</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">310,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">212,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accounts Receivable, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">620,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,881,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventories, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,364,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,578,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Prepaid Expenses</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">334,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">333,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vendor Deposits</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">222,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">36,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Current Liabilities - Excluding Deferred Revenue</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,227,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,509,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term Liabilities - Convertible Notes, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,894,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,361,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term Liabilities - Other</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">408,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">513,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Working Capital</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,493,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,772,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the nine months ended September 30, 2025, our debt and liquidity positions were affected by the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 45px; text-align:justify;">&#160;-&#160; Net cash used in operations of approximately $577,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 45px; text-align:justify;">&#160;-&#160; Net cash used in investing activities of approximately $133,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px 0px 0px 45px; text-align:justify;">&#160;-&#160; Net cash provided from financing activities of approximately $535,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Results of Operations for the Three and Nine Months Ended September 30, 2025, Compared to the Three and Nine Months Ended September 30, 2024:</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>&#160;$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2">&#160;<strong>2025</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Revenue, Net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(530,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(2,051,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Gross Profit</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,232,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,561,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(329,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">2,861,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">4,086,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(1,225,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Operating Expenses<sup style="vertical-align:super"> </sup></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">1,553,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">1,412,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">141,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">5,069,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">5,042,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">27,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Income (Loss) from Operations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(321,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">149,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(470,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(2,208,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(956,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(1,252,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Other Income (Expense)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(129,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(90,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(39,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">265,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(265,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">530,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for (benefit from) Income Taxes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(450,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">59,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(509,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(1,943,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(1,221,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(722,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic Net Income (Loss) per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.10</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.04</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Net Income (Loss) per share</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.10</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.06</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(0.04</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Total revenue for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, was $2,012,000 and $2,542,000, respectively, representing a decrease of $530,000 or 21% compared to the same prior year period. Revenues for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, were $4,619,000 and $6,670,000, representing a decrease of $2,051,000 or 31% when compared to the same prior year period. &#160;The decrease in sales was attributable to and primarily driven by a timing reduction in iHP service sales in third quarter 2025 and year to date, as customer projects are being impacted by tariff uncertainty in their supply chains.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">30</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,603,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,766,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(163,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">3,255,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">5,247,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(1,992,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">409,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">776,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(367,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">1,364,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">1,423,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(59,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(530,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(2,051,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">SteraMist Product-based revenues for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, were $1,603,000 and $1,766,000, representing a decrease of $163,000 or 9% when compared to the same prior year period. For the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, our product-based revenue was $3,255,000 and $5,247,000, respectively, representing a decrease of $1,992,000, or 38% compared to the same prior year period. &#160;The lower product revenue was attributable to delayed capital investment decisions by customers, as a result of the tariffs causing economic uncertainty in their supply chain. &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our service-based revenue for the three months ended September<strong><em> </em></strong>30, 2025, and 2024, was $409,000 and $776,000, respectively, representing a decrease of $367,000 or 47%. For the nine months ended September<strong><em> </em></strong>30, 2025, and 2024, our service-based revenue was $1,364,000 and $1,423,000, representing a decrease of $59,000 or 4% when compared to the same prior period in 2024. The decrease in service revenue in the quarter was due to the timing of service jobs in the prior year period with a key customer who restructured one of their sites during the prior year. This impact is temporary, and the customer&#8217;s operations and related service activity are expected to resume on a normal schedule. &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$ </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,280,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,886,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(606,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">3,294,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">5,169,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(1,875,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">732,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">656,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">76,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">1,325,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">1,501,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(176,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(530,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(2,051,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our domestic revenue for the three months ended September<strong><em> </em></strong>30, 2025 and 2024 was $1,280,000 and $1,886,000, respectively, a decrease of $606,000 or 32%, when compared to the same prior year period.&#160; For the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, our domestic revenue was $3,294,000 and $5,169,000, representing a decrease of $1,875,000 or 36% when compared to the same prior period in 2024. The lower product revenue was attributable to delayed capital investment by customers, as a result of impending tariffs causing economic uncertainty. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Internationally, our revenue for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, was $732,000 and $656,000, respectively, representing an increase of $76,000 or 12% when compared to the same prior year period. For the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, our international revenue was $1,325,000 and $1,501,000, representing a decrease of $176,000 or 12% when compared to the same prior period in 2024. The lower product revenue was attributable to delayed capital investment by customers, as a result of impending tariffs causing economic uncertainty. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Cost of Sales &amp; Gross Profit</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cost of Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">780,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">981,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(201,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,758,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">2,583,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(825,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cost of sales was $780,000 and $981,000 for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, a decrease of $201,000 or 20%, compared to the prior year. Our gross profit as a percentage of sales was 61% compared to 61% in the same prior period, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cost of sales was $1,758,000 and $2,583,000 for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, a decrease of $825,000, or 32%, compared to the prior year. Our gross profit as a percentage of sales was 62% compared to 61% in the same prior period, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">31</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Professional Fees</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Professional Fees </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">185,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">105,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">80,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">589,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">387,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">202,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Professional fees were $185,000 and $105,000 for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, an increase of approximately $80,000 in the current year period. Professional fees were $589,000 and $387,000 for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, an increase of approximately $202,000 in the current year period. Primarily, the increase is due to filing fees associated with our employee retention tax refunds and additional audit, legal and compliance costs incurred in the current year.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Depreciation and Amortization</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Depreciation and Amortization</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">69,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">70,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(1,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">206,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">224,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(18,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Depreciation and amortization were $69,000 and $70,000 for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, representing a decrease of $1,000 or 1%.&#160; Depreciation and amortization were $206,000 and $224,000 for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, representing a decrease of $18,000, or 8%. The decrease in depreciation expense is due to a lower amount of fixed assets being depreciated in the current year period when compared to the same prior year periods.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Selling Expenses</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Selling Expenses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">144,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">227,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(83,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">630,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">882,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(252,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Selling expenses for the three months ended September<strong><em> </em></strong>30, 2025 were $144,000, as compared to $227,000 for the three months ended September<strong><em> </em></strong>30, 2024, representing a decrease of approximately $83,000 or 37%. Selling expenses for the nine months ended September<strong><em> </em></strong>30, 2025 were $630,000, as compared to $882,000 for the nine months ended September<strong><em> </em></strong>30, 2024, representing a decrease of approximately $252,000 or 29%. The decline in selling expenses is due to a reduced marketing spend in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Research and Development</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Research and Development</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">11,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">56,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(45,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">139,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">186,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(47,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">32</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Research and development expenses for the three months ended September<strong><em> </em></strong>30, 2025 were $11,000, as compared to $56,000 for the three months ended September<strong><em> </em></strong>30, 2024, representing a decrease of approximately $45,000 or 80%. Research and development expenses for the nine months ended September<strong><em> </em></strong>30, 2025 were $139,000, as compared to $186,000 for the nine months ended September<strong><em> </em></strong>30, 2024, representing a decrease of approximately $47,000 or 25%. The decrease in research and development expenses is due to a reduction in allocated costs to R&amp;D projects offset by additional expenses incurred to maintain the Company&#8217;s patent and trademark portfolio in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Consulting Fees</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Consulting Fees </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">73,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">44,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">29,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">238,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">181,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">57,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Consulting fees were $73,000 and $44,000 for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, representing an increase of $29,000, or 66% in the current period. Consulting fees were $238,000 and $181,000 for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, representing an increase of $57,000, or 31%, in the current period. The increase in consulting fees is due to the hiring of additional consultants in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>General and Administrative Expense</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">General and Administrative </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,072,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">910,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">162,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">3,266,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">3,181,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">85,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">General and administrative expenses were $1,072,000 and $910,000 for the three months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, an increase of $162,000 or 18% in the current period.&#160; The increase was primarily attributable to an increase in credit loss expense offset by various reductions due to cost-cutting initiatives implemented during the current year.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">General and administrative expenses were $3,266,000 and $3,181,000 for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, respectively, an increase of $85,000, or 3% in the current period. The increase was primarily attributable to an increase in credit loss expense offset by various reductions due to cost-cutting initiatives implemented during the current year.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Other Income and Expense</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Income </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">535,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">535,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest Income </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">1,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">3,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">(2,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">86,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">15,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">71,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(130,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(94,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(36,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(356,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(280,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:right;">(76,000</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other Income (Expense)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(129,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(91,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(38,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">265,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">(265,000</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:6%;vertical-align:bottom;text-align:right;">530,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Other income was approximately $535,000 and $0 for the nine months ended September<strong><em> </em></strong>30, 2025, and 2024.&#160; Other income consisted of employee retention tax credits received in the current year period. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Interest income was approximately $1,000 and $3,000 for the three months ended September<strong><em> </em></strong>30, 2025, and 2024, respectively. Interest income was approximately $86,000 and $15,000 for the nine months ended September<strong><em> </em></strong>30, 2025, and 2024.&#160; The increase for the nine months was due to interest income in connection with the employee retention tax credits received in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Interest expense was $130,000 and $94,000 for the three months ended September<strong><em> </em></strong>30, 2025, and 2024, respectively.&#160; Interest expense was $356,000 and $280,000 for the nine months ended September<strong><em> </em></strong>30, 2025, and 2024, respectively. The increase in interest expense was due to the issuance of additional convertible notes in the current year periods.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">33</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Provision for Income Taxes</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:6%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:6%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change </strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:6%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>$</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for Income Tax Expense (Benefit)&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:6%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Provision for income tax was $0 for the three and nine months ended September<strong><em> </em></strong>30, 2025 and 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Liquidity and Capital Resources</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September<strong><em> </em></strong>30, 2025, we had cash and cash equivalents of approximately $490,000 and working capital of $2,493,000. Our principal capital requirements are to fund operations, invest in research and development and capital equipment, and the continued costs of compliance with public company reporting requirements. We have historically funded our operations through funds generated through operations and debt and equity financing. The sale of additional equity securities could result in dilution to our stockholders. The incurrence of indebtedness would result in increased debt service obligations and may include operating and financial covenants that would restrict our operations. We cannot be certain that any financing will be available in the amounts we need or on terms acceptable to us, if at all.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">For the nine months ended September<strong><em> </em></strong>30, 2025 and 2024, we incurred losses from operations of ($2,209,000) and ($956,000), respectively. Cash used in operations for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024 was ($577,000) and ($1,453,000), respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">A breakdown of our statement of cash flows for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024 is provided below:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="6"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September</strong><strong><em> </em></strong><strong>30,&#160; </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;" colspan="2"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Net Cash (Used) in Operating Activities&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(577,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,453,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Net Cash (Used) in Investing Activities </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(133,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(105,000</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;Net Cash Provided By Financing Activities </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">535,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Operating Activities</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cash used in operations for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024 was $577,000 and $1,453,000, respectively. The decrease was primarily attributable to management action on working capital with a focus on accounts receivable and inventory.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Investing Activities</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cash used in investing activities for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024 was $133,000 and $105,000, respectively. The increase was attributable to patent and trademark costs incurred in the current year period compared to property and equipment purchased in the prior year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Financing Activities</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cash provided by financing activities for the nine months ended September<strong><em> </em></strong>30, 2025 and 2024 was $535,000 and $28,000, respectively. The increase is attributable to the proceeds from the issuance of convertible notes in the current year period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">34</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Liquidity</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Our revenues can fluctuate due to the following factors, among others:</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">ramp up and expansion of our internal sales force and manufacturer&#8217;s representatives;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">length of our sales cycle;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">global and regional response to the outbreak of infectious diseases;</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">expansion into new territories and markets; and</td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;">timing of orders from distributors.</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We continue to implement measures to improve financial results and cash flows, including optimizing our product mix, expanding recurring solution sales, and managing overhead. Management expects these actions to support our liquidity needs through 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We could incur operating losses and an increase of costs related to the continuation of product and technology development, sales expense as we continue to grow our sales teams, inventory as we continue to ensure we have products needed and geographic presence, tooling capital expenditures as we ramp up and streamline our production and administrative activities including compliance with the Sarbanes-Oxley Act of 2002 Section 404.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the nine months ended September 30, 2025 and 2024, our net loss was approximately $1,943,000 and $1,221,000, respectively, and the cash used in operations was approximately $577,000 and $1,453,000, respectively. As of September 30, 2025, we had approximately $490,000 of cash and cash equivalents and an accumulated deficit of $56.2 million. These factors raise substantial doubt about our ability to continue as a going concern within one year after the date the financial statements in this Form 10-Q are issued. While we cannot predict our liquidity position beyond the next twelve months, we are expecting our business opportunities and customer base to continue to expand and grow, which may provide us with additional liquidity to fund our operations. We continue to consider and pursue various financing transactions such as equity and debt offerings, and we expect to raise additional capital through the sale of convertible debt securities as described in more detail below. However, there can be no assurance that we will be successful in raising that additional capital or that such capital, if available, will be on terms that are acceptable to the Company, as our ability to raise capital may be affected by various factors, including general market conditions, volatility of our stock price, investor interests and expectations, and our financial performance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On November 7, 2023, we entered into a Securities Purchase Agreement (the &#8220;SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#8220;Private Placement&#8221;) in one or more closings up to an aggregate principal amount of $5,000,000 (the &#8220;Notes&#8221;). As of November 7, 2023, we issued and sold an aggregate of $2,600,000 of Notes pursuant to the SPA before deducting the placement agent&#8217;s fees and other estimated offering expenses. The initial closing of the Private Placement occurred on November 7, 2023. The Notes are due on the fifth anniversary of the issuance date of the Notes and bear simple interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible into shares of our Common Stock, at the option of the holder, at an initial conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty days within a thirty day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the SPA). The Notes are unsecured and senior to other indebtedness subject to certain exceptions.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the nine months ended September 30, 2025, we entered into securities purchase agreements (the &#8220; 2025 SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we sold an aggregate of $535,000 of convertible promissory notes to Investors (the &#8220;Note&#8221;) in private placement transactions. The 2025 SPA allows us to offer and sell in multiple closings up to an aggregate principal amount of $3,000,000 of Notes. The Notes are due on the fifth anniversary of their issuance and bear interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible at any time into shares of the Company&#8217;s common stock, at the option of the holder at a conversion price of $1.25 per share, as adjusted, which shall not exceed $1.55 per share. In addition, the Company can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on the Nasdaq Capital Market for any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the SPA). The Notes are unsecured and senior to other indebtedness of the Company subject to certain exceptions. The offer and sale of the Notes pursuant to the 2025 SPA is not registered under the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;), as it is exempt from registration pursuant to Section 4(a)(2) thereof and Rule 506(b) promulgated thereunder. We also entered into registration rights agreements with the Investors pursuant to which we agreed to register the resales of shares of common stock issuable upon conversion of the Notes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">On November 5, 2025, we entered into an Equity Purchase Agreement with Hudson Global Ventures, LLC, pursuant to which and upon the terms and subject to the conditions set forth therein, we have the right, but not the obligation, to sell to Hudson up to $20,000,000 of shares of our common stock, par value $0.01 per share, from time to time over a 24-month period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">35</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Critical Accounting Estimates</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our discussion and analysis of our financial condition and results of operations is based upon our consolidated financial statements, which have been prepared in accordance with accounting principles generally accepted in the United States. The preparation of these financial statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues and expenses, and related disclosure of contingent assets and liabilities. The estimation process requires assumptions to be made about future events and conditions, and as such, is inherently subjective and uncertain. Actual results could differ materially from our estimates.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The SEC defines critical accounting estimates as those that are, in management&#8217;s view, most important to the portrayal of our financial condition and results of operations and the most demanding of our judgment. We consider the following estimates to be critical to an understanding of our consolidated financial statements and the uncertainties associated with the complex judgments made by us that could impact on our results of operations, financial position and cash flows.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Revenue Recognition</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize revenue in accordance with Financial Accounting Standards Board (FASB) Accounting Standards Codification (&#8220;ASC, Topic 606&#8221;), Revenue from Contracts with Customers. We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above for each distinct performance obligation identified in step (ii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to resale of our products by dealers and distributors. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from customers.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;Product revenue includes sales from our standard and customized equipment, solutions and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized as the agreed upon services are rendered to our customers in an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Estimated allowances for sales returns are recorded as sales are recognized.&#160; We use a specific identification method based on subsequent product return activity and historical average calculations to estimate the allowance for sales returns.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">36</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Costs to Obtain a Contract with a Customer</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Contract Balances</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, and December 31, 2024 we had contract balances and unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed in the amounts of $309,752 and $211,724, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Arrangements with Multiple Performance Obligations</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Significant Judgments</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services. We also record an estimated allowance for anticipated product returns.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Use of Estimates</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The preparation of consolidated financial statements in conformity with U.S. GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to allowance for credit losses, inventory, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Accounts Receivable</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accounts receivables are stated at the amount management expects to collect from outstanding balances. The Company generally does not require collateral to support customer receivables. Management assesses the collectability of outstanding customer invoices and maintains an allowance resulting from the expected non-collection of customer receivables. In estimating this reserve, management considers factors such as historical collection experience, customer creditworthiness, specific customer risk, and current and expected general economic conditions For those customers to whom we extend credit, in accordance with the Current Expected Credit Loss (CECL) model, we make a risk-based&#160; evaluation at the point of sale which is further reviewed on both an individual and collective (pool) basis during each reporting period based on ASC 326. We are required to estimate and report expected credit losses over the entire life of a financial asset, considering historical data, current conditions, and future forecasts, even if the risk of loss is remote. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have implemented a policy of reserving credit losses based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be at risk. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">37</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inventories</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods. We expense costs to maintain certification to cost of goods sold as incurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence, and future customer demand. We record an allowance for estimated losses when the facts and circumstances indicate that particular inventories may not be usable or realized when comparing our current inventory levels to anticipated demand for our product</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Long-Lived Assets Including Acquired Intangible Assets</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the three and nine months ended September 30, 2025 and 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In December 2023, FASB issued ASU No. 2023-09, Improvements to Income Tax Disclosures (Topic 740). The ASU requires disaggregated information about a reporting entity&#8217;s effective tax rate reconciliation as well as additional information on income taxes paid. The ASU is effective on a prospective basis for annual periods beginning after December 15, 2024. Early adoption is also permitted for annual financial statements that have not yet been issued or made available for issuance. The Company will adopt ASU 2023-09 in its fourth quarter of 2025 using a prospective transition method.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In November 2024, FASB issued ASU No. 2024-03, Disaggregation of Income Statement Expenses (Subtopic 220-40). In January 2025, ASU No. 2025-01 was issued to clarify the effective date for all public business entities. The ASU requires the disaggregated disclosure of specific expense categories, including purchases of inventory, employee compensation, depreciation, and amortization, within relevant income statement captions. This ASU also requires disclosure of the total amount of selling expenses along with the definition of selling expenses. The ASU is effective for annual periods beginning after December 15, 2026, and interim periods within fiscal years beginning after December 15, 2027. Adoption of this ASU can either be applied prospectively to consolidated financial statements issued for reporting periods after the effective date of this ASU or retrospectively to any or all prior periods presented in the consolidated financial statements. Early adoption is also permitted. This ASU will likely result in the required additional disclosures being included in our consolidated financial statements once adopted. We are currently evaluating the provisions of this ASU.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In July 2025, FASB issued ASU No. 2025-05, Financial Instruments&#8212;Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets. The amendments in this update provide a practical expedient permitting an entity to assume that conditions at the balance sheet date remain unchanged over the life of the asset when estimating expected credit losses for current classified accounts receivable and contract assets. This update is effective for annual periods beginning after December 15, 2025, including interim periods within those fiscal years. Adoption of this ASU can be applied prospectively for reporting periods after its effective date. Early adoption is permitted. We are currently evaluating the provisions of this ASU and do not expect this ASU to have a material impact on our consolidated financial statements.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">38</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span class="atag" style="display: inline" id="p1i3"><strong>Item 3. </strong><strong>Quantitative and Qualitative Disclosures About Market Risk.</strong></span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Not Applicable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p1i4">Item 4. Controls and Procedures.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Evaluation of Disclosure Controls and Procedures</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Our management conducted an evaluation of the effectiveness of our disclosure controls and procedures (as is defined in Rules 13a-15(e) and 15d-15(e) under the Exchange Act) as of the end of the period covered by this Quarterly Report on Form 10-Q. Our disclosure controls and procedures are intended to ensure that the information we are required to disclose in the reports that we file or submit under the Exchange Act is (i) recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms and (ii) accumulated and communicated to our management, including the Principal Executive Officer and Principal Financial Officer, to allow timely decisions regarding required disclosures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Based on that evaluation, our Principal Executive Officer and Principal Financial Officer have concluded that, as of September 30, 2025, our disclosure controls and procedures were not effective at the reasonable assurance level because we have identified a material weakness in our internal control over financial reporting as discussed below, and such material weakness has not been remediated as of September 30, 2025. &#160;Our management has concluded that the financial statements included in this Quarterly Report on Form 10-Q present fairly, in all material respects, our financial position, results of operations and cash flows for the periods presented in conformity with generally accepted accounting principles.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">Our disclosure controls and procedures are designed to provide reasonable assurance of achieving the desired control objectives. Our management recognizes that any control system, no matter how well designed and operated, is based upon certain judgments and assumptions and cannot provide absolute assurance that its objectives will be met. In addition, the design of disclosure controls and procedures must reflect the fact that there are resource constraints and that management is required to apply judgment in evaluating the benefits of possible controls and procedures relative to their costs. Similarly, an evaluation of controls cannot provide absolute assurance that misstatements due to error or fraud will not occur or that all control issues and instances of fraud, if any, have been detected.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Material Weakness in Internal Control Over Financial Reporting</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">A material weakness is a deficiency, or a combination of deficiencies, in internal control over financial reporting, such that there is a reasonable possibility that a material misstatement of the Company&#8217;s annual or interim financial statements will not be prevented or detected on a timely basis. Management has concluded that, as of September 30, 2025, we did not maintain effective controls over the preparation, review, presentation and disclosure of our financial statements. Specifically, we noted the following: </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">There are limited resources within the finance and accounting departments with sufficient knowledge and experience in applying U.S. GAAP, including but not limited to developing appropriate accounting estimates, reserves, and allowances in a timely manner and to maintain proper segregation of duties; and,</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Policies and procedures with respect to the review, supervision and monitoring of our accounting and SEC reporting functions were either not designed and in place or not operating effectively.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">These control deficiencies, if not remediated, could result in a misstatement to the annual or interim consolidated financial statements which would result in a material misstatement of the annual or interim consolidated financial statements that would not be prevented or detected. Accordingly, our management has determined that these control deficiencies constitute material weaknesses.&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">39</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Remediation Plans</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our management, with oversight from our Audit Committee, is in the process of developing and implementing remediation plans in response to the identified material weaknesses described above, and such remediation plans include the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:4%;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">We plan to expand the resources within the finance and accounting departments with personnel who possess sufficient knowledge and experience in applying U.S. GAAP, including but not limited to developing appropriate accounting estimates, reserves, and allowances in a timely manner and to maintain proper segregation of duties. In this regard, in May 2025, the Board appointed a new Chief Financial Officer with substantial experience and skills in financial accounting matters.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">We will design and implement additional policies and procedures with respect to the review, supervision and monitoring of our accounting and SEC reporting functions to improve the effectiveness of our internal controls and to ensure the timely reporting with the SEC in accordance with GAAP.</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span style="font-family:symbol">&#183;</span></p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">We will continue to recruit and train personnel with appropriate internal controls, accounting knowledge and experience commensurate with our accounting and reporting requirements, in addition to engaging and utilizing third party consultants and specialists. Our management also continues to reallocate and align roles and responsibilities within the accounting team to optimize and leverage the skills and experience of various personnel.</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We believe the measures described above will remediate the control deficiencies we have identified and strengthen our internal control over financial reporting. We are committed to continuing to improve our internal control processes and will continue to review, optimize and enhance our financial reporting controls and procedures.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Changes in Internal Control Over Financial Reporting</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the three months ended September 30, 2025 and except as disclosed above regarding the material weaknesses and related remediation plans, there have been no changes in our internal control over financial reporting that have materially affected or are reasonably likely to materially affect our internal control over financial reporting.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Limitations on Effectiveness of Controls and Procedures</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 33.75pt; text-align:justify;">In designing and evaluating the disclosure controls and procedures and internal control over financial reporting, management recognizes that any controls and procedures, no matter how well designed and operated, can provide only reasonable assurance of achieving the desired control objectives. In addition, the design of disclosure controls and procedures and internal control over financial reporting must reflect the fact that there are resource constraints and that management is required to apply judgment in evaluating the benefits of possible controls and procedures relative to their costs.&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">40</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2">PART II: OTHER INFORMATIN</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><span class="atag" style="display: inline" id="p2i1"><strong>Item 1. Legal Proceedings</strong>.</span></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">From time to time, we may be involved in litigation relating to claims arising out of our operations in the normal course of business. We currently are not a party to any legal proceedings, the adverse outcome of which, in management&#8217;s opinion, individually or in the aggregate, would have a material adverse effect on the results of our operations, financial position or cash flows. Regardless of the outcome, any litigation could have an adverse impact on us due to defense and settlement costs, diversion of management resources and other factors.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2i1a">Item 1A. Risk Factors.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">You should carefully consider the information described in the &#8220;Risk Factors&#8221; section of our Annual Report for the fiscal year ended December 31, 2024, as filed with the SEC on April 14, 2025, as amended.&#160;&#160; There have been no material changes to the risk factors we previously disclosed in our filings with the SEC, including the Annual Report. Our operations could also be affected by additional factors that are not presently known to us or by factors that we currently consider immaterial to our business. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2i2">Item 2. Unregistered Sales of Equity Securities, Use of Proceeds, and Issuer Purchases of Equity Securities.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During 2025, we entered into Securities Purchase Agreements (the &#8220;SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#8220;Private Placement&#8221;) in one or more closings up to an aggregate principal amount of $3,000,000 of convertible promissory notes, referred to here as the Notes. Pursuant to the SPA and as of September 30, 2025, we sold and issued the Notes to purchase an aggregate of 428,000 shares of common stock at an exercise price of $1.25 per share in exchange for aggregate gross proceeds of $535,000. The securities were issued in private placements in reliance on Section 4(a)(2), and/or Rule 506 of Regulation D of the Securities Act, and&#160; since the foregoing issuances did not involve a public offering, the recipient took the securities for investment and not resale, we took appropriate measures to restrict transfer, and the recipient was (a) an &#8220;accredited investor&#8221;; and/or (b) had access to similar documentation and information as would be required in a Registration Statement under the Securities Act.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Notes mature and are due on the fifth anniversary of the issuance date in 2030. The Notes bear simple interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible into shares of our Common Stock, at the option of the holder, at a conversion price of $1.25 per share, which shall not exceed $1.55 per share.&#160; In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement). The Notes are unsecured and senior to other indebtedness subject to certain exceptions. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2i3">Item 3. Defaults Upon Senior Securities.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">None.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2i4">Item 4. Mine Safety Disclosures.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Not applicable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2i5">Item 5. Other Information. </span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>10b5-1 Arrangements</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">To the best of the Company&#8217;s knowledge during the fiscal quarter ended September 30, 2025, no director or officer (as defined in Rule 16a-1(f) of the Securities Exchange Act) of the Company adopted or terminated any Rule 10b5-1 trading arrangements or non-Rule 10b5-1 trading arrangements. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><span class="atag" style="display: inline" id="p2i6">Item 6. Exhibits.</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The documents listed in the Exhibit Index of this Form 10-Q are incorporated herein by reference.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">41</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="sig">SIGNATURES</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned thereunto duly authorized.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>TOMI ENVIRONMENTAL SOLUTIONS, INC.</strong></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="width:50%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:3%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:35%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:12%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Date: November 14, 2025</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;">/s/ HALDEN S. SHANE </td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">Halden S. Shane</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">Chief Executive Officer</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">(Principal Executive Officer)</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">Date: November 14, 2025</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">By:</p></td><td style="BORDER-BOTTOM: #000000 1px solid;vertical-align:top;">/s/ DAVID VANSTON</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">David Vanston</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">Chief Financial Officer</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">(Principal Financial Officer and</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;">Principal Accounting Officer)</td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160; </p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">42</td></tr><tr style="height:15px"><td><p style="page-break-after: always"></p></td></tr><tr style="height:15px"><td><em><a href="#toc">Table of Contents</a></em></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong><span class="atag" style="display: inline" id="ex">EXHIBIT INDEX</span></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p><table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exhibit Number</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Description of Exhibit</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:5%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Form</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:5%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>File No.</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:5%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Date</strong></p></td><td style="width:1%;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:5%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exhibit</strong></p></td><td style="width:1%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:5%;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Filed Herewith</strong></p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex311.htm">31.1</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex311.htm">Certification of Chief Executive Officer pursuant to Rule&#160;13a-14(a)&#160;or Rule&#160;15d-14(a)&#160;of the Securities Exchange Act of 1934, as amended, as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex312.htm">31.2</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex312.htm">Certification of Chief Financial Officer pursuant to Rule&#160;13a-14(a)&#160;or Rule&#160;15d-14(a)&#160;of the Securities Exchange Act of 1934, as amended, as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex321.htm">32.1#</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex321.htm">Certification of the Chief Executive Officer pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002</a></p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><a href="tomz_ex322.htm">32.2#</a></p></td><td/><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><a href="tomz_ex322.htm">Certification of the Chief Financial Officer pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.</a></p></td><td/><td/><td/><td/><td/><td/><td/><td/><td/><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.INS</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Instance Document</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.SCH</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Schema</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.CAL</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Calculation Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.DEF</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Definition Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">101.LAB</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">XBRL Taxonomy Extension Label Linkbase</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">X</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"># This certification is deemed not filed for purposes of Section&#160;18 of the Securities Exchange Act of 1934, as amended, or the Exchange Act, or otherwise subject to the liability of that section, nor shall it be deemed incorporated by reference into any filing under the Securities Act of 1933, or the Exchange Act.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table style="border-spacing:0;font:10pt times new roman;width:100%" cellpadding="0"><tbody><tr style="height:15px"><td class="hpbhr">&#160;</td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: black 1px solid; TEXT-INDENT: 0px;text-align:center;">43</td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>tomz_ex311.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex311.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 31.1 </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&nbsp; </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATION OF PERIODIC REPORT UNDER SECTION 302 OF</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>THE SARBANES-OXLEY ACT OF 2002</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">I, Halden S. Shane, certify that:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">1.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">I have reviewed this Quarterly Report on Form 10-Q of TOMI Environmental Solutions, Inc.;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">2.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">3.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">4.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;&nbsp; &nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(c)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(d)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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&#8217;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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">5.&nbsp;</p></td> <td colspan="2" style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The registrant&#8217;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of registrant&#8217;s board of directors (or persons performing the equivalent functions):</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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&#8217;s ability to record, process, summarize and report financial information; and</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Date: November 14, 2025</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:53%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/ HALDEN S. SHANE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Halden S. Shane</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Executive Officer</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Executive Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>tomz_ex312.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex312.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 31.2 </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATION OF PERIODIC REPORT UNDER SECTION 302 OF</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>THE SARBANES-OXLEY ACT OF 2002</strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">I, David Vanston, certify that:</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">1.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">I have reviewed this Quarterly Report on Form 10-Q of TOMI Environmental Solutions, Inc.;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">2.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">3.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">4.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:</p></td></tr></table> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;&nbsp; &nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(c)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(d)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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&#8217;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;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">5.&nbsp;</p></td> <td colspan="2" style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The registrant&#8217;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of registrant&#8217;s board of directors (or persons performing the equivalent functions):</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(a)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">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&#8217;s ability to record, process, summarize and report financial information; and</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">(b)</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Date: November 14, 2025</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:53%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/&nbsp;DAVID VANSTON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">David Vanston </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Financial Officer</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Financial Officer and Principal Accounting Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>tomz_ex321.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex321.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 32.1 </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATION PURSUANT TO </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>18 U.S.C. SECTION 1350, </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>AS ADOPTED PURSUANT TO </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002 </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In connection with the quarterly report of TOMI Environmental Solutions, Inc. (the &#8220;Company&#8221;) on Form&nbsp;10-Q for the quarter ended September 30, 2025, as filed with the Securities and Exchange Commission on November 14, 2025 (the &#8220;Report&#8221;), I, Halden S. Shane, Chief Executive Officer of the Company, certify as of the date hereof, pursuant to 18 U.S.C. Section&nbsp;1350, as adopted pursuant to Section&nbsp;906 of the Sarbanes-Oxley Act of 2002, that to the best of my knowledge: </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">1.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">2.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Date: November 14, 2025</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:53%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/&nbsp;HALDEN S. SHANE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">Halden S. Shane</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Executive Officer</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Executive Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>5
<FILENAME>tomz_ex322.htm
<DESCRIPTION>CERTIFICATION
<TEXT>
<html><head><title>tomz_ex322.htm</title><!--Document created using EDGARMaster--></head><body style="TEXT-ALIGN: justify; FONT: 10pt times new roman"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"><strong>EXHIBIT 32.2 </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&nbsp; </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>CERTIFICATION PURSUANT TO </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>18 U.S.C. SECTION 1350, </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>AS ADOPTED PURSUANT TO </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002 </strong></p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In connection with the quarterly report of TOMI Environmental Solutions, Inc. (the &#8220;Company&#8221;) on Form&nbsp;10-Q for the quarter ended September 30, 2025, as filed with the Securities and Exchange Commission on November 14, 2025 (the &#8220;Report&#8221;), I, David Vanston, Chief Financial Officer of the Company, certify as of the date hereof, pursuant to 18 U.S.C. Section&nbsp;1350, as adopted pursuant to Section&nbsp;906 of the Sarbanes-Oxley Act of 2002, that to the best of my knowledge: </p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <table style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:4%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="width:4%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">1.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended; and</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 30px; text-align:justify;">&nbsp;</p></td> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">2.</p></td> <td style="vertical-align:top;"> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Date: November 14, 2025</p> <table style="border-spacing:0;font-size:10pt;width:100%" cellpadding="0"> <tr style="height:15px"> <td style="width:53%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="BORDER-BOTTOM: 1px solid;width:35%;vertical-align:top;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">/s/&nbsp;DAVID VANSTON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p></td> <td style="width:12%;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr> <tr style="height:15px"> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td> <td style="vertical-align:bottom;"> <p style="font-size:10pt;font-family:times new roman;margin:0px">David Vanston</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Chief Financial Officer</p> <p style="font-size:10pt;font-family:times new roman;margin:0px">(Principal Financial Officer and </p> <p style="font-size:10pt;font-family:times new roman;margin:0px">Principal Accounting Officer)</p></td> <td> <p style="font-size:10pt;font-family:times new roman;margin:0px">&nbsp;</p></td></tr></table> <p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&nbsp;</p><body>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>6
<FILENAME>tomz-20250930.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 11/14/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<schema xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:currency="http://xbrl.sec.gov/currency/2025" xmlns:us-gaap-att="http://fasb.org/us-gaap/attributes" xmlns:invest="http://xbrl.sec.gov/invest/2013-01-31" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:us-types="http://fasb.org/us-types/2025" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:country="http://xbrl.sec.gov/country/2025" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:srt-types="http://fasb.org/srt-types/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:cyd="http://xbrl.sec.gov/cyd-af-sub/2025" xmlns:ffd="http://xbrl.sec.gov/ffd/2025" xmlns:tomz="http://tomz.com/20250930" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://tomz.com/20250930">
  <annotation>
    <appinfo>
      <link:roleType roleURI="http://tomz.com/role/Cover" id="Cover">
        <link:definition>000001 - Document - Cover</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://tomz.com/role/CondensedConsolidatedBalanceSheets" id="CondensedConsolidatedBalanceSheets">
        <link:definition>110200 - Statement - CONDENSED 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://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" id="CondensedConsolidatedBalanceSheetsParenthetical">
        <link:definition>110201 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" id="CondensedConsolidatedStatementsOfOperationsUnaudited">
        <link:definition>124100 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" id="CondensedConsolidatedStatementsOfShareholdersEquityUnaudited">
        <link:definition>148600 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" id="CondensedConsolidatedStatementsOfCashFlowsUnaudited">
        <link:definition>170000 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tomz.com/role/InsiderTradingArragements" id="InsiderTradingArragements">
        <link:definition>170001 - Disclosure - Insider Trading Arragements</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://tomz.com/role/DescriptionOfBusiness" id="DescriptionOfBusiness">
        <link:definition>200000 - 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://tomz.com/role/SummaryOfSignificantAccountingPolicies" id="SummaryOfSignificantAccountingPolicies">
        <link:definition>290000 - 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://tomz.com/role/INVENTORIES" id="INVENTORIES">
        <link:definition>340000 - 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://tomz.com/role/VendorDeposits" id="VendorDeposits">
        <link:definition>778000 - Disclosure - VENDOR DEPOSITS</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://tomz.com/role/PropertyAndEquipment" id="PropertyAndEquipment">
        <link:definition>778001 - Disclosure - PROPERTY AND EQUIPMENT</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://tomz.com/role/IntangibleAssets" id="IntangibleAssets">
        <link:definition>778002 - Disclosure - INTANGIBLE ASSETS</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://tomz.com/role/LEASES" id="LEASES">
        <link:definition>842000 - 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://tomz.com/role/CloudComputingServiceContract" id="CloudComputingServiceContract">
        <link:definition>842001 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT</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://tomz.com/role/ConvertibleDebt" id="ConvertibleDebt">
        <link:definition>842002 - Disclosure - CONVERTIBLE DEBT</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://tomz.com/role/ShareholdersEquity" id="ShareholdersEquity">
        <link:definition>842003 - Disclosure - 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://tomz.com/role/CommitmentsAndContingencies" id="CommitmentsAndContingencies">
        <link:definition>842004 - Disclosure - COMMITMENTS AND CONTINGENCIES</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tomz.com/role/ContractsAndAgreements" id="ContractsAndAgreements">
        <link:definition>842005 - Disclosure - CONTRACTS AND AGREEMENTS</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://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" id="AccruedExpensesAndOtherCurrentLiabilities">
        <link:definition>842006 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT 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://tomz.com/role/AccruedWarranty" id="AccruedWarranty">
        <link:definition>842007 - Disclosure - ACCRUED WARRANTY</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://tomz.com/role/IncomeTaxes" id="IncomeTaxes">
        <link:definition>995000 - 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://tomz.com/role/CustomerConcentration" id="CustomerConcentration">
        <link:definition>995001 - Disclosure - CUSTOMER CONCENTRATION</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://tomz.com/role/SegmentReporting" id="SegmentReporting">
        <link:definition>995002 - 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://tomz.com/role/EmployeeRetentionCredits" id="EmployeeRetentionCredits">
        <link:definition>995003 - Disclosure - EMPLOYEE RETENTION CREDITS</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://tomz.com/role/SubsequentEvents" id="SubsequentEvents">
        <link:definition>995004 - 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://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" id="SummaryOfSignificantAccountingPoliciesPolicies">
        <link:definition>995005 - 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://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" id="SummaryOfSignificantAccountingPoliciesTables">
        <link:definition>995006 - 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://tomz.com/role/InventoriesTables" id="InventoriesTables">
        <link:definition>995007 - 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://tomz.com/role/PropertyAndEquipmentTables" id="PropertyAndEquipmentTables">
        <link:definition>995008 - Disclosure - PROPERTY AND EQUIPMENT (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://tomz.com/role/IntangibleAssetsTables" id="IntangibleAssetsTables">
        <link:definition>995009 - Disclosure - INTANGIBLE ASSETS (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://tomz.com/role/LeasesTables" id="LeasesTables">
        <link:definition>995010 - 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://tomz.com/role/ConvertibleDebtTables" id="ConvertibleDebtTables">
        <link:definition>995011 - Disclosure - CONVERTIBLE DEBT (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://tomz.com/role/ShareholdersEquityTables" id="ShareholdersEquityTables">
        <link:definition>995012 - Disclosure - SHAREHOLDERS EQUITY (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://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" id="AccruedExpensesAndOtherCurrentLiabilitiesTables">
        <link:definition>995013 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT 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://tomz.com/role/AccruedWarrantyTables" id="AccruedWarrantyTables">
        <link:definition>995014 - Disclosure - ACCRUED WARRANTY (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" id="SummaryOfSignificantAccountingPoliciesDetails">
        <link:definition>995015 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" id="SummaryOfSignificantAccountingPoliciesDetails1">
        <link:definition>995016 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)</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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" id="SummaryOfSignificantAccountingPoliciesDetails2">
        <link:definition>995017 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" id="SummaryOfSignificantAccountingPoliciesDetails3">
        <link:definition>995018 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)</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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" id="SummaryOfSignificantAccountingPoliciesDetails4">
        <link:definition>995019 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)</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://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" id="SummaryOfSignificantAccountingPoliciesDetailsNarrative">
        <link:definition>995020 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)</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://tomz.com/role/InventoriesDetails" id="InventoriesDetails">
        <link:definition>995021 - 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://tomz.com/role/VendorDepositsDetailsNarrative" id="VendorDepositsDetailsNarrative">
        <link:definition>995022 - Disclosure - VENDOR DEPOSITS (Details Narrative)</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://tomz.com/role/PropertyAndEquipmentDetails" id="PropertyAndEquipmentDetails">
        <link:definition>995023 - Disclosure - PROPERTY AND EQUIPMENT (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://tomz.com/role/PropertyAndEquipmentDetailsNarrative" id="PropertyAndEquipmentDetailsNarrative">
        <link:definition>995024 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)</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://tomz.com/role/IntangibleAssetsDetails" id="IntangibleAssetsDetails">
        <link:definition>995025 - Disclosure - 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://tomz.com/role/IntangibleAssetsDetails1" id="IntangibleAssetsDetails1">
        <link:definition>995026 - Disclosure - INTANGIBLE ASSETS (Details 1)</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://tomz.com/role/IntangibleAssetsDetails2" id="IntangibleAssetsDetails2">
        <link:definition>995027 - Disclosure - INTANGIBLE ASSETS (Details 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://tomz.com/role/IntangibleAssetsDetailsNarrative" id="IntangibleAssetsDetailsNarrative">
        <link:definition>995028 - Disclosure - INTANGIBLE ASSETS (Details Narrative)</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://tomz.com/role/LeasesDetails" id="LeasesDetails">
        <link:definition>995029 - 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://tomz.com/role/LeasesDetails1" id="LeasesDetails1">
        <link:definition>995030 - Disclosure - LEASES (Details 1)</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://tomz.com/role/LeasesDetails2" id="LeasesDetails2">
        <link:definition>995031 - Disclosure - LEASES (Details 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://tomz.com/role/LeasesDetails3" id="LeasesDetails3">
        <link:definition>995032 - Disclosure - LEASES (Details 3)</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://tomz.com/role/LeasesDetails4" id="LeasesDetails4">
        <link:definition>995033 - Disclosure - LEASES (Details 4)</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://tomz.com/role/LeasesDetailsNarrative" id="LeasesDetailsNarrative">
        <link:definition>995034 - Disclosure - LEASES (Details Narrative)</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://tomz.com/role/CloudComputingServiceContractDetailsNarrative" id="CloudComputingServiceContractDetailsNarrative">
        <link:definition>995035 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</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://tomz.com/role/ConvertibleDebtDetails" id="ConvertibleDebtDetails">
        <link:definition>995036 - Disclosure - CONVERTIBLE DEBT (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://tomz.com/role/ConvertibleDebtDetailsNarrative" id="ConvertibleDebtDetailsNarrative">
        <link:definition>995037 - Disclosure - CONVERTIBLE DEBT (Details Narrative)</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://tomz.com/role/ShareholdersEquityDetails" id="ShareholdersEquityDetails">
        <link:definition>995038 - Disclosure - SHAREHOLDERS EQUITY (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://tomz.com/role/ShareholdersEquityDetails1" id="ShareholdersEquityDetails1">
        <link:definition>995039 - Disclosure - SHAREHOLDERS EQUITY (Details 1)</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://tomz.com/role/ShareholdersEquityDetails2" id="ShareholdersEquityDetails2">
        <link:definition>995040 - Disclosure - SHAREHOLDERS EQUITY (Details 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://tomz.com/role/ShareholdersEquityDetails3" id="ShareholdersEquityDetails3">
        <link:definition>995041 - Disclosure - SHAREHOLDERS EQUITY (Details 3)</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://tomz.com/role/ShareholdersEquityDetailsNarrative" id="ShareholdersEquityDetailsNarrative">
        <link:definition>995042 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)</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://tomz.com/role/ContractsAndAgreementsDetailsNarrative" id="ContractsAndAgreementsDetailsNarrative">
        <link:definition>995043 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)</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://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" id="AccruedExpensesAndOtherCurrentLiabilitiesDetails">
        <link:definition>995044 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://tomz.com/role/AccruedWarrantyDetails" id="AccruedWarrantyDetails">
        <link:definition>995045 - Disclosure - ACCRUED WARRANTY (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://tomz.com/role/IncomeTaxesDetailsNarrative" id="IncomeTaxesDetailsNarrative">
        <link:definition>995046 - Disclosure - INCOME TAXES (Details Narrative)</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://tomz.com/role/CustomerConcentrationDetailsNarrative" id="CustomerConcentrationDetailsNarrative">
        <link:definition>995047 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)</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://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" id="EmployeeRetentionCreditsDetailsNarrative">
        <link:definition>995048 - Disclosure - EMPLOYEE RETENTION CREDITS (Details Narrative)</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://tomz.com/role/SubsequentEventsDetailsNarrative" id="SubsequentEventsDetailsNarrative">
        <link:definition>995049 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20250930_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="tomz-20250930_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      <link:linkbaseRef xlink:type="simple" xlink:href="tomz-20250930_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="tomz-20250930_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
    </appinfo>
  </annotation>
  <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
  <import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" />
  <import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" />
  <import namespace="http://xbrl.sec.gov/country/2025" schemaLocation="https://xbrl.sec.gov/country/2025/country-2025.xsd" />
  <import namespace="http://xbrl.sec.gov/currency/2025" schemaLocation="https://xbrl.sec.gov/currency/2025/currency-2025.xsd" />
  <import namespace="http://xbrl.sec.gov/dei/2025" schemaLocation="https://xbrl.sec.gov/dei/2025/dei-2025.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/arcrole/fact-explanatoryFact" schemaLocation="http://www.xbrl.org/lrr/arcrole/factExplanatory-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd" />
  <import namespace="http://www.xbrl.org/2009/role/net" schemaLocation="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd" />
  <import namespace="http://fasb.org/srt-types/2025" schemaLocation="https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd" />
  <import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd" />
  <import namespace="http://fasb.org/us-types/2025" schemaLocation="https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd" />
  <import namespace="http://fasb.org/srt/2025" schemaLocation="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd" />
  <import namespace="http://fasb.org/us-gaap/2025" schemaLocation="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd" />
  <import namespace="http://xbrl.sec.gov/ecd/2025" schemaLocation="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd" />
  <element id="tomz_InventoryCurrent" name="InventoryCurrent" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CumulativeDividendPercenatge" name="CumulativeDividendPercenatge" nillable="true" xbrli:periodType="instant" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OptionsExercisedShares" name="OptionsExercisedShares" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OptionsExercisedAmount" name="OptionsExercisedAmount" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AllowanceOnSalesReturns" name="AllowanceOnSalesReturns" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" name="NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_VendorDepositsTextBlock" name="VendorDepositsTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CloudComputingServiceContractDisclosureTextBlock" name="CloudComputingServiceContractDisclosureTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ContractsAndAgreementsTextBlock" name="ContractsAndAgreementsTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EmployeeRetentionCreditsDisclosureTextBlock" name="EmployeeRetentionCreditsDisclosureTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AccountsPayablePolicyTextBlock" name="AccountsPayablePolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" name="LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_GoingConcernPolicyTextBlock" name="GoingConcernPolicyTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock" name="ScheduleOfAllowanceForCreditLossesTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" name="ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" name="SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" name="ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" nillable="true" xbrli:periodType="duration" type="nonnum:textBlockItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AccountsAndFinancingReceivableForCreditLoss" name="AccountsAndFinancingReceivableForCreditLoss" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_InterestOnConvertibleDebtNet" name="InterestOnConvertibleDebtNet" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_NetLossAttributableToCommonShareholders" name="NetLossAttributableToCommonShareholders" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" name="AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_RetainedEarningAccumulatedDeficit" name="RetainedEarningAccumulatedDeficit" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_RecognizeRevenue" name="RecognizeRevenue" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SalesReturnsAllowanceDuringPeriod" name="SalesReturnsAllowanceDuringPeriod" nillable="true" xbrli:balance="credit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_InventoryValuationReserve" name="InventoryValuationReserve" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConcentrationRiskPercentage" name="ConcentrationRiskPercentage" nillable="true" xbrli:periodType="instant" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConcentrationRiskInPercentage" name="ConcentrationRiskInPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_PotentiallyDilutiveSecurities" name="PotentiallyDilutiveSecurities" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EquipmentsGross" name="EquipmentsGross" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AmortizationOfTenantImprovementAllowance" name="AmortizationOfTenantImprovementAllowance" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_FiniteLivedIntangibleAssetNet" name="FiniteLivedIntangibleAssetNet" nillable="true" xbrli:balance="debit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" name="OperatingLeaseWeightedAveragesRemainingLeaseTerm" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_TermLease" name="TermLease" nillable="true" xbrli:periodType="duration" type="xbrli:durationItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_MaximumIncreasesRentPercentage" name="MaximumIncreasesRentPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ProceedsFromServiceContractOfReceivables" name="ProceedsFromServiceContractOfReceivables" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AnnualPaymentsOnContractExpired" name="AnnualPaymentsOnContractExpired" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConvertibleNotesPayableGross" name="ConvertibleNotesPayableGross" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ProceedsFromConvertiblePromissoryNotesIssuance" name="ProceedsFromConvertiblePromissoryNotesIssuance" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DescriptionOfConvertibleNote" name="DescriptionOfConvertibleNote" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AmortizationOfFinancingCostsAdditions" name="AmortizationOfFinancingCostsAdditions" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" name="ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" name="WarrantsIssuedUponPurchaseShareOfCommonStock" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_GrantFairValueOfPerShare" name="GrantFairValueOfPerShare" nillable="true" xbrli:periodType="duration" type="num:perShareItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CumulativeConvertiblePreferredStockStatedValue" name="CumulativeConvertiblePreferredStockStatedValue" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CumulativeDividendOfPreferredStock" name="CumulativeDividendOfPreferredStock" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DiscretionaryBonus" name="DiscretionaryBonus" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AdditionalRestrictedStockGranted" name="AdditionalRestrictedStockGranted" nillable="true" xbrli:periodType="duration" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DirectorFeesCurrentAndNoncurrent" name="DirectorFeesCurrentAndNoncurrent" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SalesTaxPayable" name="SalesTaxPayable" nillable="true" xbrli:balance="credit" xbrli:periodType="instant" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_SettlementOfWarrantyClaims" name="SettlementOfWarrantyClaims" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_USDeferredTaxAssetsValuationAllowanceDescription" name="USDeferredTaxAssetsValuationAllowanceDescription" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_RevenueConcentrationRiskPercentage" name="RevenueConcentrationRiskPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_AccountsReceivableConcentrationRiskPercentage" name="AccountsReceivableConcentrationRiskPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_CommonStockIsuable" name="CommonStockIsuable" nillable="true" xbrli:periodType="instant" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ExcessInCommonStockPercentage" name="ExcessInCommonStockPercentage" nillable="true" xbrli:periodType="duration" type="num:percentItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" name="EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DirectorFees" name="DirectorFees" nillable="true" xbrli:balance="debit" xbrli:periodType="duration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_DescriptionOfVestingRestricatedStockUnits" name="DescriptionOfVestingRestricatedStockUnits" nillable="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_InsiderTradingArragementsAbstract" name="InsiderTradingArragementsAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ConvertibleDebtAbstract" name="ConvertibleDebtAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_ContractsAndAgreementsAbstract" name="ContractsAndAgreementsAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element id="tomz_EmployeeRetentionCreditsAbstract" name="EmployeeRetentionCreditsAbstract" nillable="true" abstract="true" xbrli:periodType="duration" type="xbrli:stringItemType" substitutionGroup="xbrli:item" />
  <element name="SteraMistPRoductMember" id="tomz_SteraMistPRoductMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ServiceAndTrainingMember" id="tomz_ServiceAndTrainingMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ProductAndServiceRevenueMember" id="tomz_ProductAndServiceRevenueMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="InternationalMember" id="tomz_InternationalMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="GeographicRegionMember" id="tomz_GeographicRegionMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="OneVendorsMember" id="tomz_OneVendorsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TwoVendorsMember" id="tomz_TwoVendorsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ConvertibleDebenturesMember" id="tomz_ConvertibleDebenturesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsMember" id="tomz_WarrantsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="StockOptionsMember" id="tomz_StockOptionsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="PreferredAStockMember" id="tomz_PreferredAStockMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="EquityIncentivePlanOneMember" id="tomz_EquityIncentivePlanOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="UnitedStatesMember" id="tomz_UnitedStatesMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="ExecutiveAgreementsWithElissaJShaneMember" id="tomz_ExecutiveAgreementsWithElissaJShaneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="CommitteeChairpersonMember" id="tomz_CommitteeChairpersonMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="JuneTwoThousandTwentyFiveMember" id="tomz_JuneTwoThousandTwentyFiveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="OctoberandNovemberTwoThousandTwentyThreeMember" id="tomz_OctoberandNovemberTwoThousandTwentyThreeMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="TwoCustomersMember" id="tomz_TwoCustomersMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="MayTwentyTwentyFiveMember" id="tomz_MayTwentyTwentyFiveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="CustomerListsOneMember" id="tomz_CustomerListsOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeZeroPointSevenOneMember" id="tomz_RangeZeroPointSevenOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeZeroPointSevenFiveMember" id="tomz_RangeZeroPointSevenFiveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeZeroPointEightZeroMember" id="tomz_RangeZeroPointEightZeroMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="MayTwentyTwentyFourMember" id="tomz_MayTwentyTwentyFourMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeZeroPointEightFiveMember" id="tomz_RangeZeroPointEightFiveMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="MrVanstonMember" id="tomz_MrVanstonMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeOnePointOneTwoMember" id="tomz_RangeOnePointOneTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeOnePointNineThreeMember" id="tomz_RangeOnePointNineThreeMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeFourPointFourZeroMember" id="tomz_RangeFourPointFourZeroMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="RangeSevenPointZeroSixMember" id="tomz_RangeSevenPointZeroSixMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsOneMember" id="tomz_WarrantsOneMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="StockWarrantsMember" id="tomz_StockWarrantsMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsTwoMember" id="tomz_WarrantsTwoMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsThreeMember" id="tomz_WarrantsThreeMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsSevenMember" id="tomz_WarrantsSevenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsEightMember" id="tomz_WarrantsEightMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsTenMember" id="tomz_WarrantsTenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="WarrantsElevenMember" id="tomz_WarrantsElevenMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="NonEmployeeDirectorMember" id="tomz_NonEmployeeDirectorMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="EquityPurchaseAgreementMember" id="tomz_EquityPurchaseAgreementMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="SeriesAPreferredStocksMember" id="tomz_SeriesAPreferredStocksMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
  <element name="PreferredStocksMember" id="tomz_PreferredStocksMember" nillable="true" xbrli:periodType="duration" type="nonnum:domainItemType" substitutionGroup="xbrli:item" />
</schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>7
<FILENAME>tomz-20250930_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 11/14/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" roleURI="http://www.xbrl.org/2009/role/negatedLabel" />
  <link:roleRef xlink:type="simple" roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" />
  <link:roleRef xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" roleURI="http://www.xbrl.org/2009/role/netLabel" />
  <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/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CoverAbstract_lbl" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityRegistrantName_lbl" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCentralIndexKey_lbl" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="dei_DocumentType" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentType_lbl" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_AmendmentFlag_lbl" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntitySmallBusiness_lbl" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityShellCompany_lbl" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCurrentReportingStatus_lbl" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentPeriodEndDate_lbl" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFilerCategory_lbl" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentFiscalYearFocus_lbl" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xml:lang="en-US">Entity Common Stock Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityFileNumber_lbl" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xml:lang="en-US">Entity Incorporation State Country Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressAddressLine1_lbl" xml:lang="en-US">Entity Address Address Line 1</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressCityOrTown_lbl" xml:lang="en-US">Entity Address City Or Town</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressStateOrProvince_lbl" xml:lang="en-US">Entity Address State Or Province</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityAddressPostalZipCode_lbl" xml:lang="en-US">Entity Address Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_CityAreaCode_lbl" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_LocalPhoneNumber_lbl" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_Security12bTitle_lbl" xml:lang="en-US">Security 12b Title</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_TradingSymbol_lbl" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_SecurityExchangeName_lbl" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentQuarterlyReport_lbl" xml:lang="en-US">Document Quarterly Report</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_DocumentTransitionReport_lbl" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl_f3c13a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl_f3c13a" xml:lang="en-US">CONDENSED CONSOLIDATED BALANCE SHEETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl_d4defb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementTable_lbl_d4defb" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl_0b78ce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementLineItems_lbl_0b78ce" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis_lbl_39d922" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementClassOfStockAxis_lbl_39d922" xml:lang="en-US">Statement Class Of Stock Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="us-gaap_SeriesBPreferredStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SeriesBPreferredStockMember" xlink:to="us-gaap_SeriesBPreferredStockMember_lbl_3e10b0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesBPreferredStockMember_lbl_3e10b0" xml:lang="en-US">Convertible Series B Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="us-gaap_SeriesAPreferredStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SeriesAPreferredStockMember" xlink:to="us-gaap_SeriesAPreferredStockMember_lbl_e16f74" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SeriesAPreferredStockMember_lbl_e16f74" xml:lang="en-US">Convertible Series A Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl_db7b49" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsAbstract_lbl_db7b49" xml:lang="en-US">ASSETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl_a120d8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrentAbstract_lbl_a120d8" xml:lang="en-US">Current Assets:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_82ff7f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_82ff7f" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl_07f66f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl_07f66f" xml:lang="en-US">Accounts Receivable - net</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryCurrent" xlink:label="tomz_InventoryCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InventoryCurrent" xlink:to="tomz_InventoryCurrent_lbl_4f707b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InventoryCurrent_lbl_4f707b" xml:lang="en-US">Inventories - net (Note 3)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="us-gaap_DepositsAssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepositsAssetsCurrent" xlink:to="us-gaap_DepositsAssetsCurrent_lbl_09b573" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepositsAssetsCurrent_lbl_09b573" xml:lang="en-US">Vendor Deposits (Note 4)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="us-gaap_PrepaidExpenseCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseCurrent" xlink:to="us-gaap_PrepaidExpenseCurrent_lbl_ce0fdd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseCurrent_lbl_ce0fdd" xml:lang="en-US">Prepaid Expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl_02a4df" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_AssetsCurrent_lbl_02a4df" xml:lang="en-US">Total Current Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AssetsCurrent_lbl_9" xml:lang="en-US">[Assets, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl_68315e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl_68315e" xml:lang="en-US">Property and Equipment - net (Note 5)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsAbstract" xlink:label="us-gaap_OtherAssetsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsAbstract" xlink:to="us-gaap_OtherAssetsAbstract_lbl_9bdb9b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsAbstract_lbl_9bdb9b" xml:lang="en-US">Other Assets:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_6fc965" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_6fc965" xml:lang="en-US">Intangible Assets - net (Note 6)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl_e06f89" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_e06f89" xml:lang="en-US">Operating Lease - Right of Use Asset (Note - 7)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl_5cc70b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssetsCurrent_lbl_5cc70b" xml:lang="en-US">Other Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl_d3a5a5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherAssets_lbl_d3a5a5" xml:lang="en-US">Total Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssets" xlink:label="us-gaap_OtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssets" xlink:to="us-gaap_OtherAssets_lbl_15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAssets_lbl_15" xml:lang="en-US">[Other Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_14226b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Assets_lbl_14226b" xml:lang="en-US">Total Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl_16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Assets_lbl_16" xml:lang="en-US">[Assets]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl_4ed98b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl_4ed98b" xml:lang="en-US">LIABILITIES AND SHAREHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl_d6bd48" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl_d6bd48" xml:lang="en-US">Current Liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl_e8e990" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableCurrent_lbl_e8e990" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableCurrent_lbl_19" xml:lang="en-US">[Accounts Payable, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_1047e8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_1047e8" xml:lang="en-US">Accrued Expenses and Other Current Liabilities (Notes 13 and 14)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="us-gaap_DeferredRevenueCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredRevenueCurrent" xlink:to="us-gaap_DeferredRevenueCurrent_lbl_345b6c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredRevenueCurrent_lbl_345b6c" xml:lang="en-US">Deferred Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_6a5393" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_6a5393" xml:lang="en-US">Current Portion of Long-Term Operating Lease (Note 7)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl_895f7c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesCurrent_lbl_895f7c" xml:lang="en-US">Total Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl_23" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesCurrent_lbl_23" xml:lang="en-US">[Liabilities, Current]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrentAbstract" xlink:to="us-gaap_LiabilitiesNoncurrentAbstract_lbl_f39b57" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrentAbstract_lbl_f39b57" xml:lang="en-US">Long-Term Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_6ac973" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_6ac973" xml:lang="en-US">Long-Term Operating Lease, Net of Current Portion (Note 7)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleLongTermNotesPayable" xlink:label="us-gaap_ConvertibleLongTermNotesPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConvertibleLongTermNotesPayable" xlink:to="us-gaap_ConvertibleLongTermNotesPayable_lbl_a605c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConvertibleLongTermNotesPayable_lbl_a605c0" xml:lang="en-US">Convertible Notes Payable, net of discount of $240,947 and $239,506 at September 30, 2025 and December 31, 2024, respectively (Note 9)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl_c6dd60" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_c6dd60" xml:lang="en-US">Total Long-Term Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="us-gaap_LiabilitiesNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesNoncurrent" xlink:to="us-gaap_LiabilitiesNoncurrent_lbl_27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesNoncurrent_lbl_27" xml:lang="en-US">[Liabilities, Noncurrent]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl_b0e121" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_Liabilities_lbl_b0e121" xml:lang="en-US">Total Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl_28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Liabilities_lbl_28" xml:lang="en-US">[Liabilities]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl_273491" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingencies_lbl_273491" xml:lang="en-US">Commitments and Contingencies (Notes 7, 9 and 11)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl_94869d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityAbstract_lbl_94869d" xml:lang="en-US">Shareholders' Equity:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl_6eb360" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockValue_lbl_6eb360" xml:lang="en-US">Preferred Stock Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl_487e7f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockValue_lbl_487e7f" xml:lang="en-US">Common stock; par value $0.01 per share, 250,000,000 shares authorized; 20,075,205 and 20,015,205 shares issued and outstanding at September 30, 2025 and December 31, 2024, respectively</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl_87ab73" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_87ab73" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="us-gaap_AdditionalPaidInCapital" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapital" xlink:to="us-gaap_AdditionalPaidInCapital_lbl_33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapital_lbl_33" xml:lang="en-US">[Additional Paid in Capital]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_093464" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl_093464" xml:lang="en-US">Accumulated Deficit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_9ecdd2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_StockholdersEquity_lbl_9ecdd2" xml:lang="en-US">Total Shareholders' Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquity_lbl_35" xml:lang="en-US">[Equity, Attributable to Parent]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl_93f3d8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_93f3d8" xml:lang="en-US">Total Liabilities and Shareholders' Equity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl_36" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl_36" xml:lang="en-US">[Liabilities and Equity]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentUnamortizedDiscount" xlink:to="us-gaap_DebtInstrumentUnamortizedDiscount_lbl_dc57fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentUnamortizedDiscount_lbl_dc57fb" xml:lang="en-US">Debt discount on convertible notes payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl_a6dd4f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl_a6dd4f" xml:lang="en-US">Common Stock, Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl_478108" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_478108" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl_82088d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesIssued_lbl_82088d" xml:lang="en-US">Common Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl_18de1d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl_18de1d" xml:lang="en-US">Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_f23184" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_f23184" xml:lang="en-US">Cumulative Convertible Preferred Stock, Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl_c87d85" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_c87d85" xml:lang="en-US">Cumulative Convertible Preferred Stock, shares authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl_a96a8a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_a96a8a" xml:lang="en-US">Cumulative Convertible Preferred Stock, shares issued</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl_6a2b1a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl_6a2b1a" xml:lang="en-US">Cumulative Convertible Preferred Stock, Shares outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeDividendPercenatge" xlink:label="tomz_CumulativeDividendPercenatge" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CumulativeDividendPercenatge" xlink:to="tomz_CumulativeDividendPercenatge_lbl_7b51a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CumulativeDividendPercenatge_lbl_7b51a4" xml:lang="en-US">Cumulative Dividend Percenatge</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl_02eaf5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementAbstract_lbl_02eaf5" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl_c66331" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Revenues_lbl_c66331" xml:lang="en-US">Sales, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl_de1f2f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfRevenue_lbl_de1f2f" xml:lang="en-US">Cost of Sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_b64b38" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_GrossProfit_lbl_b64b38" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GrossProfit_lbl_4" xml:lang="en-US">[Gross Profit]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="us-gaap_CostsAndExpensesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostsAndExpensesAbstract" xlink:to="us-gaap_CostsAndExpensesAbstract_lbl_433038" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostsAndExpensesAbstract_lbl_433038" xml:lang="en-US">Operating Expenses:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfessionalFees" xlink:label="us-gaap_ProfessionalFees" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProfessionalFees" xlink:to="us-gaap_ProfessionalFees_lbl_81df31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProfessionalFees_lbl_81df31" xml:lang="en-US">Professional Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="us-gaap_DepreciationAndAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl_59ff59" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DepreciationAndAmortization_lbl_59ff59" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingExpense" xlink:label="us-gaap_SellingExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingExpense" xlink:to="us-gaap_SellingExpense_lbl_a09c92" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SellingExpense_lbl_a09c92" xml:lang="en-US">Selling Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl_e44d61" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl_e44d61" xml:lang="en-US">Research and Development</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LegalFees" xlink:label="us-gaap_LegalFees" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LegalFees" xlink:to="us-gaap_LegalFees_lbl_abb9b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LegalFees_lbl_abb9b6" xml:lang="en-US">Consulting Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl_a38512" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl_a38512" xml:lang="en-US">General and Administrative</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl_ba5dc0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingExpenses_lbl_ba5dc0" xml:lang="en-US">Total Operating Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingExpenses_lbl_12" xml:lang="en-US">[Operating Expenses]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl_058795" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OperatingIncomeLoss_lbl_058795" xml:lang="en-US">Income (loss) from Operations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl_13" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingIncomeLoss_lbl_13" xml:lang="en-US">[Operating Income (Loss)]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_OtherNonoperatingIncomeExpenseAbstract_lbl_77d324" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNonoperatingIncomeExpenseAbstract_lbl_77d324" xml:lang="en-US">Other Income (Expense):</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherIncome" xlink:label="us-gaap_OtherIncome" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncome" xlink:to="us-gaap_OtherIncome_lbl_cee91a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherIncome_lbl_cee91a" xml:lang="en-US">Other Income (Note 18)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOperating" xlink:label="us-gaap_InterestIncomeOperating" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeOperating" xlink:to="us-gaap_InterestIncomeOperating_lbl_08c999" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeOperating_lbl_08c999" xml:lang="en-US">Interest Income, Operating</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl_84895a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InterestExpense_lbl_84895a" xml:lang="en-US">Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpense_lbl_17" xml:lang="en-US">[Interest Expense, Operating and Nonoperating]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_lbl_45868b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl_45868b" xml:lang="en-US">Total Other Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_lbl_18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl_18" xml:lang="en-US">[Other Nonoperating Income (Expense)]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_648c22" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_648c22" xml:lang="en-US">Income (loss) before income taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl_19" xml:lang="en-US">[Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl_68c03b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl_68c03b" xml:lang="en-US">Provision for Income Taxes (Note 15)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_c60055" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_c60055" xml:lang="en-US">Net income (loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_21" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLoss_lbl_21" xml:lang="en-US">[Net Income (Loss) Attributable to Parent]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl_e1170b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareAbstract_lbl_e1170b" xml:lang="en-US">Net income (loss) Per Common Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl_c9f3bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasic_lbl_c9f3bc" xml:lang="en-US">Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl_7cff31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareDiluted_lbl_7cff31" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_f43bd9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl_f43bd9" xml:lang="en-US">Basic Weighted Average Common Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_a5b829" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_a5b829" xml:lang="en-US">Diluted Weighted Average Common Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl_6c6ffa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl_6c6ffa" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl_4ad067" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl_4ad067" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="tomz_SeriesAPreferredStocksMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SeriesAPreferredStocksMember" xlink:to="tomz_SeriesAPreferredStocksMember_lbl_fe4237" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SeriesAPreferredStocksMember_lbl_fe4237" xml:lang="en-US">Series A Preferred Stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl_796947" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockMember_lbl_796947" xml:lang="en-US">Common Stock</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl_11f0c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl_11f0c4" xml:lang="en-US">Additional Paid-In Capital</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl_1024" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl_1024" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl_245da7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RetainedEarningsMember_lbl_245da7" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_4cdc04" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_SharesIssued_lbl_4cdc04" xml:lang="en-US">Balance, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="us-gaap_SharesIssued" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesIssued_lbl_2" xml:lang="en-US">[Shares, Issued]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_42d1cc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_StockholdersEquity_lbl_42d1cc" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OptionsExercisedShares" xlink:label="tomz_OptionsExercisedShares" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OptionsExercisedShares" xlink:to="tomz_OptionsExercisedShares_lbl_0c976d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OptionsExercisedShares_lbl_0c976d" xml:lang="en-US">Options Exercised, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OptionsExercisedAmount" xlink:label="tomz_OptionsExercisedAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OptionsExercisedAmount" xlink:to="tomz_OptionsExercisedAmount_lbl_ea9f5b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OptionsExercisedAmount_lbl_ea9f5b" xml:lang="en-US">Options Exercised, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:to="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl_c9af19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesIssuedForServices_lbl_c9af19" xml:lang="en-US">Common Stock Issued for Services Provided, shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:to="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl_ea311b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueIssuedForServices_lbl_ea311b" xml:lang="en-US">Common Stock Issued for Services Provided, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl_068262" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl_068262" xml:lang="en-US">Equity Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_704190" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_704190" xml:lang="en-US">Net Income (Loss)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssued" xlink:to="us-gaap_SharesIssued_lbl_c4798c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_SharesIssued_lbl_c4798c" xml:lang="en-US">Balance, shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl_b7fcad" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_StockholdersEquity_lbl_b7fcad" xml:lang="en-US">Balance, amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl_5843e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl_5843e6" xml:lang="en-US">CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_91b1df" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl_91b1df" xml:lang="en-US">Cash Flow From Operating Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_ProfitLoss_lbl_5181f8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProfitLoss_lbl_5181f8" xml:lang="en-US">Net (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_77f526" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl_77f526" xml:lang="en-US">Adjustments to Reconcile Net (Loss) to Net Cash (Used) In Operating Activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DepreciationAndAmortization" xlink:to="us-gaap_DepreciationAndAmortization_lbl_372dfa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DepreciationAndAmortization_lbl_372dfa" xml:lang="en-US">Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:to="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl_85db12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense_lbl_85db12" xml:lang="en-US">Amortization of Right of Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="us-gaap_AmortizationOfFinancingCosts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfFinancingCosts" xlink:to="us-gaap_AmortizationOfFinancingCosts_lbl_226dd1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfFinancingCosts_lbl_226dd1" xml:lang="en-US">Amortization of Deferred Financing Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl_bebb53" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensation_lbl_bebb53" xml:lang="en-US">Equity Compensation Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:to="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims_lbl_d3fca4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims_lbl_d3fca4" xml:lang="en-US">Value of Equity Issued for Services</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="us-gaap_ProvisionForDoubtfulAccounts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForDoubtfulAccounts" xlink:to="us-gaap_ProvisionForDoubtfulAccounts_lbl_958764" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProvisionForDoubtfulAccounts_lbl_958764" xml:lang="en-US">Credit Loss Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryLIFOReserveEffectOnIncomeNet" xlink:label="us-gaap_InventoryLIFOReserveEffectOnIncomeNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryLIFOReserveEffectOnIncomeNet" xlink:to="us-gaap_InventoryLIFOReserveEffectOnIncomeNet_lbl_fd83c8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryLIFOReserveEffectOnIncomeNet_lbl_fd83c8" xml:lang="en-US">Inventory Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AllowanceOnSalesReturns" xlink:label="tomz_AllowanceOnSalesReturns" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AllowanceOnSalesReturns" xlink:to="tomz_AllowanceOnSalesReturns_lbl_9c2ca5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AllowanceOnSalesReturns_lbl_9c2ca5" xml:lang="en-US">Sales Returns Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl_8a4969" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl_8a4969" xml:lang="en-US">Changes in Operating Assets and Liabilities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_lbl_41f724" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingAssetsAbstract_lbl_41f724" xml:lang="en-US">Decrease (Increase) in:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_2352db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_2352db" xml:lang="en-US">Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_15" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsReceivable_lbl_15" xml:lang="en-US">[Increase (Decrease) in Accounts Receivable]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl_576301" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl_576301" xml:lang="en-US">Inventory</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories_lbl_16" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInInventories_lbl_16" xml:lang="en-US">[Increase (Decrease) in Inventories]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_885234" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_885234" xml:lang="en-US">Prepaid Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:to="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInPrepaidExpense_lbl_17" xml:lang="en-US">[Increase (Decrease) in Prepaid Expense]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDepositOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInDepositOtherAssets_lbl_81faa6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInDepositOtherAssets_lbl_81faa6" xml:lang="en-US">Vendor Deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDepositOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInDepositOtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDepositOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInDepositOtherAssets_lbl_18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDepositOtherAssets_lbl_18" xml:lang="en-US">[Increase (Decrease) in Deposit Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl_42e118" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl_42e118" xml:lang="en-US">Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:label="us-gaap_IncreaseDecreaseInOtherCurrentAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:to="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl_19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOtherCurrentAssets_lbl_19" xml:lang="en-US">[Increase (Decrease) in Other Current Assets]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_lbl_9e8a2e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract_lbl_9e8a2e" xml:lang="en-US">Increase (Decrease) in:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_812ae8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_812ae8" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_21" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl_21" xml:lang="en-US">[Increase (Decrease) in Accounts Payable]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl_2f9446" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilities_lbl_2f9446" xml:lang="en-US">Accrued Expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl_84be8f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl_84be8f" xml:lang="en-US">Deferred Revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:to="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl_23" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInDeferredRevenue_lbl_23" xml:lang="en-US">[Increase (Decrease) in Deferred Revenue]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:to="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl_62aa0d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncreaseDecreaseInOperatingLeaseLiability_lbl_62aa0d" xml:lang="en-US">Lease Liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_476e86" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_476e86" xml:lang="en-US">Net Cash (Used) in Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_25" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl_25" xml:lang="en-US">[Cash Provided by (Used in) Operating Activity, Including Discontinued Operation]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_21430f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl_21430f" xml:lang="en-US">Cash Flow From Investing Activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:to="us-gaap_PaymentsToAcquireIntangibleAssets_lbl_428373" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets_lbl_428373" xml:lang="en-US">Capitalized Patent and Trademark Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:to="us-gaap_PaymentsToAcquireIntangibleAssets_lbl_27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets_lbl_27" xml:lang="en-US">[Payments to Acquire Intangible Assets]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl_f3854c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl_f3854c" xml:lang="en-US">Purchase of Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl_28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl_28" xml:lang="en-US">[Payments to Acquire Property, Plant, and Equipment]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_7a2824" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_7a2824" xml:lang="en-US">Net Cash (Used) in Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_29" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl_29" xml:lang="en-US">[Cash Provided by (Used in) Investing Activity, Including Discontinued Operation]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_db9160" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl_db9160" xml:lang="en-US">Cash Flow From Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromConvertibleDebt" xlink:label="us-gaap_ProceedsFromConvertibleDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromConvertibleDebt" xlink:to="us-gaap_ProceedsFromConvertibleDebt_lbl_b59a59" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromConvertibleDebt_lbl_b59a59" xml:lang="en-US">Proceeds from Issuance of Convertible Notes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl_785b92" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl_785b92" xml:lang="en-US">Proceeds from Exercise of Options</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_421bb2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_421bb2" xml:lang="en-US">Net Cash Provided By Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_33" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl_33" xml:lang="en-US">[Cash Provided by (Used in) Financing Activity, Including Discontinued Operation]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_4f1618" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_4f1618" xml:lang="en-US">(Decrease) In Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_34" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl_34" xml:lang="en-US">[Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Excluding Exchange Rate Effect, Including Discontinued Operation]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_28b0f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_28b0f7" xml:lang="en-US">Cash and Cash Equivalents - Beginning</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_f9682e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl_f9682e" xml:lang="en-US">Cash and Cash Equivalents - Ending</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl_9c4c41" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl_9c4c41" xml:lang="en-US">Supplemental Cash Flow Information:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl_d5676b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestPaidNet_lbl_d5676b" xml:lang="en-US">Cash Paid for Interest</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:to="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_4f2d83" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NoncashInvestingAndFinancingItemsAbstract_lbl_4f2d83" xml:lang="en-US">Non-Cash Investing and Financing Activities:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" xlink:label="tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" xlink:to="tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts_lbl_2f269c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts_lbl_2f269c" xml:lang="en-US">Service equipment reclassified from inventory to fixed assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InsiderTradingArragementsAbstract" xlink:label="tomz_InsiderTradingArragementsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InsiderTradingArragementsAbstract" xlink:to="tomz_InsiderTradingArragementsAbstract_lbl_0c996d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InsiderTradingArragementsAbstract_lbl_0c996d" xml:lang="en-US">Insider Trading Arragements</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_InsiderTradingArrLineItems" xlink:label="ecd_InsiderTradingArrLineItems" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_InsiderTradingArrLineItems" xlink:to="ecd_InsiderTradingArrLineItems_lbl_ee85a7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_InsiderTradingArrLineItems_lbl_ee85a7" xml:lang="en-US">Insider Trading Arrangements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrAdoptedFlag" xlink:label="ecd_Rule10b51ArrAdoptedFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_Rule10b51ArrAdoptedFlag" xlink:to="ecd_Rule10b51ArrAdoptedFlag_lbl_756a0a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_Rule10b51ArrAdoptedFlag_lbl_756a0a" xml:lang="en-US">Rule 10b5-1 Arragement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrTrmntdFlag" xlink:label="ecd_Rule10b51ArrTrmntdFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_Rule10b51ArrTrmntdFlag" xlink:to="ecd_Rule10b51ArrTrmntdFlag_lbl_1a5469" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_Rule10b51ArrTrmntdFlag_lbl_1a5469" xml:lang="en-US">Rule 10b5-1 Arragement Treatment [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrAdoptedFlag" xlink:label="ecd_NonRule10b51ArrAdoptedFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_NonRule10b51ArrAdoptedFlag" xlink:to="ecd_NonRule10b51ArrAdoptedFlag_lbl_abda74" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_NonRule10b51ArrAdoptedFlag_lbl_abda74" xml:lang="en-US">Non Rule 10b5-1 Arragement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrTrmntdFlag" xlink:label="ecd_NonRule10b51ArrTrmntdFlag" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ecd_NonRule10b51ArrTrmntdFlag" xlink:to="ecd_NonRule10b51ArrTrmntdFlag_lbl_a9b113" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="ecd_NonRule10b51ArrTrmntdFlag_lbl_a9b113" xml:lang="en-US">Non Rule 10b5-1 Arragement Treatment [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl_d4480e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl_d4480e" xml:lang="en-US">DESCRIPTION OF BUSINESS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl_7efab8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl_7efab8" xml:lang="en-US">DESCRIPTION OF BUSINESS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:to="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock_lbl_2" xml:lang="en-US">Business Description and Basis of Presentation [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl_c7b60e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl_c7b60e" xml:lang="en-US">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_7a8aa9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_7a8aa9" xml:lang="en-US">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl_2" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="us-gaap_InventoryDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureAbstract" xlink:to="us-gaap_InventoryDisclosureAbstract_lbl_8e40e0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureAbstract_lbl_8e40e0" xml:lang="en-US">INVENTORIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl_32b84a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl_32b84a" xml:lang="en-US">INVENTORIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryDisclosureTextBlock_lbl_2" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:to="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl_ea5053" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtraordinaryAndUnusualItemsAbstract_lbl_ea5053" xml:lang="en-US">VENDOR DEPOSITS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_VendorDepositsTextBlock" xlink:to="tomz_VendorDepositsTextBlock_lbl_b46b69" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_VendorDepositsTextBlock_lbl_b46b69" xml:lang="en-US">VENDOR DEPOSITS</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_VendorDepositsTextBlock" xlink:label="tomz_VendorDepositsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_VendorDepositsTextBlock" xlink:to="tomz_VendorDepositsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_VendorDepositsTextBlock_lbl_2" xml:lang="en-US">[VENDOR DEPOSITS]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentAbstract_lbl_4a019a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentAbstract_lbl_4a019a" xml:lang="en-US">PROPERTY AND EQUIPMENT</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_642bfe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_642bfe" xml:lang="en-US">PROPERTY AND EQUIPMENT</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_lbl_2" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl_683b45" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl_683b45" xml:lang="en-US">INTANGIBLE ASSETS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_0780c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_0780c2" xml:lang="en-US">INTANGIBLE ASSETS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl_2" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="us-gaap_LeasesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesAbstract" xlink:to="us-gaap_LeasesAbstract_lbl_0aefdc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesAbstract_lbl_0aefdc" xml:lang="en-US">LEASES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_14c90a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_14c90a" xml:lang="en-US">LEASES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeasesOfLesseeDisclosureTextBlock_lbl_2" xml:lang="en-US">Leases of Lessee Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="us-gaap_RisksAndUncertaintiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RisksAndUncertaintiesAbstract" xlink:to="us-gaap_RisksAndUncertaintiesAbstract_lbl_c0e3db" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RisksAndUncertaintiesAbstract_lbl_c0e3db" xml:lang="en-US">CLOUD COMPUTING SERVICE CONTRACT</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:to="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_96dc19" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_96dc19" xml:lang="en-US">CLOUD COMPUTING SERVICE CONTRACT</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:to="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CloudComputingServiceContractDisclosureTextBlock_lbl_2" xml:lang="en-US">[CLOUD COMPUTING SERVICE CONTRACT]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebtAbstract" xlink:label="tomz_ConvertibleDebtAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConvertibleDebtAbstract" xlink:to="tomz_ConvertibleDebtAbstract_lbl_611697" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConvertibleDebtAbstract_lbl_611697" xml:lang="en-US">CONVERTIBLE DEBT</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl_c57d9c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl_c57d9c" xml:lang="en-US">CONVERTIBLE DEBT</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl_2" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl_068578" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl_068578" xml:lang="en-US">SHAREHOLDERS' EQUITY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_d4d16a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl_d4d16a" xml:lang="en-US">COMMITMENTS AND CONTINGENCIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_8ae60f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_8ae60f" xml:lang="en-US">COMMITMENTS AND CONTINGENCIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl_2" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ContractsAndAgreementsAbstract" xlink:label="tomz_ContractsAndAgreementsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ContractsAndAgreementsAbstract" xlink:to="tomz_ContractsAndAgreementsAbstract_lbl_b14c95" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ContractsAndAgreementsAbstract_lbl_b14c95" xml:lang="en-US">CONTRACTS AND AGREEMENTS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ContractsAndAgreementsTextBlock" xlink:to="tomz_ContractsAndAgreementsTextBlock_lbl_deffaa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_ContractsAndAgreementsTextBlock_lbl_deffaa" xml:lang="en-US">CONTRACTS AND AGREEMENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ContractsAndAgreementsTextBlock" xlink:label="tomz_ContractsAndAgreementsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ContractsAndAgreementsTextBlock" xlink:to="tomz_ContractsAndAgreementsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ContractsAndAgreementsTextBlock_lbl_2" xml:lang="en-US">[CONTRACTS AND AGREEMENTS]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract_lbl_598ab1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract_lbl_598ab1" xml:lang="en-US">ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:to="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_184ed2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_184ed2" xml:lang="en-US">ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:to="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_lbl_2" xml:lang="en-US">Accounts Payable, Accrued Liabilities, and Other Liabilities Disclosure, Current [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl_0950a2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtDisclosureAbstract_lbl_0950a2" xml:lang="en-US">ACCRUED WARRANTY</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductWarrantyDisclosureTextBlock" xlink:to="us-gaap_ProductWarrantyDisclosureTextBlock_lbl_ab5cc1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ProductWarrantyDisclosureTextBlock_lbl_ab5cc1" xml:lang="en-US">ACCRUED WARRANTY</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductWarrantyDisclosureTextBlock" xlink:label="us-gaap_ProductWarrantyDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductWarrantyDisclosureTextBlock" xlink:to="us-gaap_ProductWarrantyDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductWarrantyDisclosureTextBlock_lbl_2" xml:lang="en-US">Product Warranty Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="us-gaap_IncomeTaxDisclosureAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureAbstract" xlink:to="us-gaap_IncomeTaxDisclosureAbstract_lbl_bbab5f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureAbstract_lbl_bbab5f" xml:lang="en-US">INCOME TAXES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl_996d5c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl_996d5c" xml:lang="en-US">INCOME TAXES</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock_lbl_2" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:to="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_689340" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_689340" xml:lang="en-US">CUSTOMER CONCENTRATION</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:to="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskDisclosureTextBlock_lbl_2" xml:lang="en-US">Concentration Risk Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl_c28eec" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingAbstract_lbl_c28eec" xml:lang="en-US">SEGMENT REPORTING</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl_fb2f8b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl_fb2f8b" xml:lang="en-US">SEGMENT REPORTING</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl_2" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EmployeeRetentionCreditsAbstract" xlink:label="tomz_EmployeeRetentionCreditsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EmployeeRetentionCreditsAbstract" xlink:to="tomz_EmployeeRetentionCreditsAbstract_lbl_d0ecc6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EmployeeRetentionCreditsAbstract_lbl_d0ecc6" xml:lang="en-US">EMPLOYEE RETENTION CREDITS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EmployeeRetentionCreditsDisclosureTextBlock" xlink:to="tomz_EmployeeRetentionCreditsDisclosureTextBlock_lbl_c30b51" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_EmployeeRetentionCreditsDisclosureTextBlock_lbl_c30b51" xml:lang="en-US">EMPLOYEE RETENTION CREDITS</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EmployeeRetentionCreditsDisclosureTextBlock" xlink:label="tomz_EmployeeRetentionCreditsDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EmployeeRetentionCreditsDisclosureTextBlock" xlink:to="tomz_EmployeeRetentionCreditsDisclosureTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EmployeeRetentionCreditsDisclosureTextBlock_lbl_2" xml:lang="en-US">[EMPLOYEE RETENTION CREDITS]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl_5ad79a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsAbstract_lbl_5ad79a" xml:lang="en-US">SUBSEQUENT EVENTS</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl_1fef0f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_1fef0f" xml:lang="en-US">SUBSEQUENT EVENTS</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="us-gaap_SubsequentEventsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsTextBlock" xlink:to="us-gaap_SubsequentEventsTextBlock_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventsTextBlock_lbl_2" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl_fc4057" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock_lbl_fc4057" xml:lang="en-US">Basis of Presentation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock_lbl_6062f2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConsolidationPolicyTextBlock_lbl_6062f2" xml:lang="en-US">Principles of Consolidation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl_f027b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription_lbl_f027b1" xml:lang="en-US">Reclassification of Accounts</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl_10e2f6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_UseOfEstimates_lbl_10e2f6" xml:lang="en-US">Use of Estimates</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:to="us-gaap_FairValueMeasurementPolicyPolicyTextBlock_lbl_f432b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FairValueMeasurementPolicyPolicyTextBlock_lbl_f432b1" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_a98f24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_a98f24" xml:lang="en-US">Cash and Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock_lbl_7" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesPolicyTextBlock" xlink:to="us-gaap_ReceivablesPolicyTextBlock_lbl_d15b08" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ReceivablesPolicyTextBlock_lbl_d15b08" xml:lang="en-US">Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="us-gaap_ReceivablesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesPolicyTextBlock" xlink:to="us-gaap_ReceivablesPolicyTextBlock_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ReceivablesPolicyTextBlock_lbl_8" xml:lang="en-US">Receivable [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock_lbl_4f25c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryPolicyTextBlock_lbl_4f25c2" xml:lang="en-US">Inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_d801c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_lbl_d801c6" xml:lang="en-US">Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="us-gaap_LesseeLeasesPolicyTextBlock_lbl_909f80" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeLeasesPolicyTextBlock_lbl_909f80" xml:lang="en-US">Leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsPayablePolicyTextBlock" xlink:to="tomz_AccountsPayablePolicyTextBlock_lbl_52690e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_AccountsPayablePolicyTextBlock_lbl_52690e" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsPayablePolicyTextBlock" xlink:label="tomz_AccountsPayablePolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsPayablePolicyTextBlock" xlink:to="tomz_AccountsPayablePolicyTextBlock_lbl_12" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AccountsPayablePolicyTextBlock_lbl_12" xml:lang="en-US">[Accounts Payable]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyPolicy" xlink:label="us-gaap_ExtendedProductWarrantyPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyPolicy" xlink:to="us-gaap_ExtendedProductWarrantyPolicy_lbl_3453e5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyPolicy_lbl_3453e5" xml:lang="en-US">Accrued Warranties</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock_lbl_f460ff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxPolicyTextBlock_lbl_f460ff" xml:lang="en-US">Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock_lbl_958cc4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock_lbl_958cc4" xml:lang="en-US">Net Income (Loss) Per Share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_5a0f22" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock_lbl_5a0f22" xml:lang="en-US">Revenue Recognition</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_20c7b4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_20c7b4" xml:lang="en-US">Equity Compensation Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_17" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_lbl_17" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl_6787c4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl_6787c4" xml:lang="en-US">Concentrations of Credit Risk</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" xlink:label="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" xlink:to="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock_lbl_af772b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock_lbl_af772b" xml:lang="en-US">Long-Lived Assets Including Acquired Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="us-gaap_AdvertisingCostsPolicyTextBlock_lbl_bd2c4d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdvertisingCostsPolicyTextBlock_lbl_bd2c4d" xml:lang="en-US">Advertising and Promotional Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:to="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl_ed64fe" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ResearchAndDevelopmentExpensePolicy_lbl_ed64fe" xml:lang="en-US">Research and Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:to="us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl_851c70" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SegmentReportingPolicyPolicyTextBlock_lbl_851c70" xml:lang="en-US">Business Segments</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GoingConcernPolicyTextBlock" xlink:label="tomz_GoingConcernPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GoingConcernPolicyTextBlock" xlink:to="tomz_GoingConcernPolicyTextBlock_lbl_793cf3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GoingConcernPolicyTextBlock_lbl_793cf3" xml:lang="en-US">Going Concern</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_002df9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl_002df9" xml:lang="en-US">Recent Accounting Pronouncements</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock" xlink:label="tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock" xlink:to="tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock_lbl_d43b77" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock_lbl_d43b77" xml:lang="en-US">Schedule of allowance for credit losses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl_d75036" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl_d75036" xml:lang="en-US">Schedule of earnings per share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_lbl_b48ec4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_lbl_b48ec4" xml:lang="en-US">Schedule of anti-dilutive securities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_8001bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock_lbl_8001bc" xml:lang="en-US">Schedule of disaggregation of revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_c0a176" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfInventoryCurrentTableTextBlock_lbl_c0a176" xml:lang="en-US">Schedule of inventories</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_9a0508" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock_lbl_9a0508" xml:lang="en-US">Schedule of property and equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl_f274c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl_f274c2" xml:lang="en-US">Schedule of definite life of intangible assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock_lbl_6c6826" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock_lbl_6c6826" xml:lang="en-US">Schedule of indefinite life of intangible assets</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl_a037bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl_a037bc" xml:lang="en-US">Schedule of approximate future amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock" xlink:label="us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock" xlink:to="us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock_lbl_7479b0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock_lbl_7479b0" xml:lang="en-US">Schedule of operating Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock_lbl_be8521" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseCostTableTextBlock_lbl_be8521" xml:lang="en-US">Schedule of components of lease Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" xlink:label="tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" xlink:to="tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock_lbl_3c590d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock_lbl_3c590d" xml:lang="en-US">Schedule of Other Information Related To Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:to="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl_761eaf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock_lbl_761eaf" xml:lang="en-US">Supplemental Cash Flow Information Related To Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl_04611b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_lbl_04611b" xml:lang="en-US">Schedule of maturities of operating lease payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleDebtTableTextBlock" xlink:label="us-gaap_ConvertibleDebtTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConvertibleDebtTableTextBlock" xlink:to="us-gaap_ConvertibleDebtTableTextBlock_lbl_c52666" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConvertibleDebtTableTextBlock_lbl_c52666" xml:lang="en-US">Schedule of convertible debt</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock_lbl_fa1e20" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock_lbl_fa1e20" xml:lang="en-US">Schedule of stock options outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl_fae316" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_lbl_fae316" xml:lang="en-US">Schedule of options outstanding and exercisable by price range</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:to="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl_a94fa6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_lbl_a94fa6" xml:lang="en-US">Schedule of stock warrants outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" xlink:label="tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" xlink:to="tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock_lbl_0ba9d6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock_lbl_0ba9d6" xml:lang="en-US">Schedule of warrants outstanding and exercisable by price range</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_e3c9a7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl_e3c9a7" xml:lang="en-US">Schedule of accrued expenses and other current liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:to="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_lbl_c03022" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_lbl_c03022" xml:lang="en-US">Schedule of warranty reserve activity</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl_31ae89" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent_lbl_31ae89" xml:lang="en-US">Allowance for credit losses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsAndFinancingReceivableForCreditLoss" xlink:to="tomz_AccountsAndFinancingReceivableForCreditLoss_lbl_e5edd1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_AccountsAndFinancingReceivableForCreditLoss_lbl_e5edd1" xml:lang="en-US">Credit Loss Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsAndFinancingReceivableForCreditLoss" xlink:label="tomz_AccountsAndFinancingReceivableForCreditLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsAndFinancingReceivableForCreditLoss" xlink:to="tomz_AccountsAndFinancingReceivableForCreditLoss_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AccountsAndFinancingReceivableForCreditLoss_lbl_3" xml:lang="en-US">[Credit Loss Expense]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss" xlink:to="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss_lbl_92d03e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss_lbl_92d03e" xml:lang="en-US">Adjustment to allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss" xlink:label="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss" xlink:to="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss_lbl_4" xml:lang="en-US">[Accounts and Financing Receivable, Allowance for Credit Loss]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_5d4b44" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable_lbl_5d4b44" xml:lang="en-US">Allowance for credit losses, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl_f6fe4e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_NetIncomeLoss_lbl_f6fe4e" xml:lang="en-US">Net Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt_lbl_1c1eba" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt_lbl_1c1eba" xml:lang="en-US">Adjustments for convertible debt - as converted:</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InterestOnConvertibleDebtNet" xlink:label="tomz_InterestOnConvertibleDebtNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InterestOnConvertibleDebtNet" xlink:to="tomz_InterestOnConvertibleDebtNet_lbl_efeb5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InterestOnConvertibleDebtNet_lbl_efeb5d" xml:lang="en-US">Interest on convertible debt net of effective tax rate (28%)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NetLossAttributableToCommonShareholders" xlink:label="tomz_NetLossAttributableToCommonShareholders" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_NetLossAttributableToCommonShareholders" xlink:to="tomz_NetLossAttributableToCommonShareholders_lbl_28631c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NetLossAttributableToCommonShareholders_lbl_28631c" xml:lang="en-US">Net Income (loss) Attributable To Common Shareholders</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:to="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl_1ec689" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract_lbl_1ec689" xml:lang="en-US">Weighted Average Number Of Common Shares Outstanding:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesIssuedBasic_lbl_182c65" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesIssuedBasic_lbl_182c65" xml:lang="en-US">Basic</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesIssuedBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesIssuedBasic_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WeightedAverageNumberOfSharesIssuedBasic_lbl_7" xml:lang="en-US">[Weighted Average Number of Shares Issued, Basic]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_bbb06a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_bbb06a" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl_02224e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract_lbl_02224e" xml:lang="en-US">Net Income (loss) Attributable To Common Shareholders Per Share:</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasicEarningsPerShareProForma" xlink:label="us-gaap_BasicEarningsPerShareProForma" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasicEarningsPerShareProForma" xlink:to="us-gaap_BasicEarningsPerShareProForma_lbl_9bb7c1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_BasicEarningsPerShareProForma_lbl_9bb7c1" xml:lang="en-US">Basic per common share</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DilutedEarningsPerShareProForma" xlink:label="us-gaap_DilutedEarningsPerShareProForma" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DilutedEarningsPerShareProForma" xlink:to="us-gaap_DilutedEarningsPerShareProForma_lbl_7ca15a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DilutedEarningsPerShareProForma_lbl_7ca15a" xml:lang="en-US">Diluted per common share</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebenturesMember" xlink:label="tomz_ConvertibleDebenturesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConvertibleDebenturesMember" xlink:to="tomz_ConvertibleDebenturesMember_lbl_8f6be1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConvertibleDebenturesMember_lbl_8f6be1" xml:lang="en-US">Convertible debentures</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="tomz_StockOptionsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockOptionsMember" xlink:to="tomz_StockOptionsMember_lbl_0191bb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockOptionsMember_lbl_0191bb" xml:lang="en-US">Stock Options</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockWarrantsMember" xlink:label="tomz_StockWarrantsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_StockWarrantsMember" xlink:to="tomz_StockWarrantsMember_lbl_001d87" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_StockWarrantsMember_lbl_001d87" xml:lang="en-US">Stock Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PreferredStocksMember" xlink:label="tomz_PreferredStocksMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PreferredStocksMember" xlink:to="tomz_PreferredStocksMember_lbl_5252e5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PreferredStocksMember_lbl_5252e5" xml:lang="en-US">Preferred stocks</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesIssuedBasic_lbl_a1f7bc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfSharesIssuedBasic_lbl_a1f7bc" xml:lang="en-US">Basic weighted-average shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_66d837" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl_66d837" xml:lang="en-US">Diluted Weighted Average Shares</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasicEarningsPerShareProForma" xlink:to="us-gaap_BasicEarningsPerShareProForma_lbl_3de93d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_BasicEarningsPerShareProForma_lbl_3de93d" xml:lang="en-US">Basic</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DilutedEarningsPerShareProForma" xlink:to="us-gaap_DilutedEarningsPerShareProForma_lbl_00a6b6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_DilutedEarningsPerShareProForma_lbl_00a6b6" xml:lang="en-US">Diluted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_6c1423" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl_6c1423" xml:lang="en-US">Effect of dilutive securities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="us-gaap_ClassOfWarrantOrRightAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfWarrantOrRightAxis" xlink:to="us-gaap_ClassOfWarrantOrRightAxis_lbl_01db07" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ClassOfWarrantOrRightAxis_lbl_01db07" xml:lang="en-US">Class Of Warrant Or Right Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="us-gaap_ShortTermDebtTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermDebtTypeAxis" xlink:to="us-gaap_ShortTermDebtTypeAxis_lbl_c731cf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShortTermDebtTypeAxis_lbl_c731cf" xml:lang="en-US">Short-Term Debt, Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="tomz_WarrantsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsMember" xlink:to="tomz_WarrantsMember_lbl_606f35" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsMember_lbl_606f35" xml:lang="en-US">Warrants</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleDebtMember" xlink:label="us-gaap_ConvertibleDebtMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConvertibleDebtMember" xlink:to="us-gaap_ConvertibleDebtMember_lbl_697d37" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConvertibleDebtMember_lbl_697d37" xml:lang="en-US">Convertible Debt [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" xlink:label="tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" xlink:to="tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount_lbl_ec3f27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount_lbl_ec3f27" xml:lang="en-US">Effect of anti-dilutive</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="us-gaap_StatementBusinessSegmentsAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementBusinessSegmentsAxis" xlink:to="us-gaap_StatementBusinessSegmentsAxis_lbl_735585" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StatementBusinessSegmentsAxis_lbl_735585" xml:lang="en-US">Statement Business Segments Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="us-gaap_IncomeTaxAuthorityNameAxis_lbl_00fe9f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeTaxAuthorityNameAxis_lbl_00fe9f" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SteraMistPRoductMember" xlink:label="tomz_SteraMistPRoductMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SteraMistPRoductMember" xlink:to="tomz_SteraMistPRoductMember_lbl_37e262" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SteraMistPRoductMember_lbl_37e262" xml:lang="en-US">SteraMist PRoduct [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ServiceAndTrainingMember" xlink:label="tomz_ServiceAndTrainingMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ServiceAndTrainingMember" xlink:to="tomz_ServiceAndTrainingMember_lbl_4033f7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ServiceAndTrainingMember_lbl_4033f7" xml:lang="en-US">Service And Training [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProductAndServiceRevenueMember" xlink:label="tomz_ProductAndServiceRevenueMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProductAndServiceRevenueMember" xlink:to="tomz_ProductAndServiceRevenueMember_lbl_a6b2d4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProductAndServiceRevenueMember_lbl_a6b2d4" xml:lang="en-US">Product and Service Revenue [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InternationalMember" xlink:label="tomz_InternationalMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InternationalMember" xlink:to="tomz_InternationalMember_lbl_844773" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InternationalMember_lbl_844773" xml:lang="en-US">International [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GeographicRegionMember" xlink:label="tomz_GeographicRegionMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GeographicRegionMember" xlink:to="tomz_GeographicRegionMember_lbl_0a5f1d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GeographicRegionMember_lbl_0a5f1d" xml:lang="en-US">Geographic Region [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_UnitedStatesMember" xlink:label="tomz_UnitedStatesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_UnitedStatesMember" xlink:to="tomz_UnitedStatesMember_lbl_b8a96b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_UnitedStatesMember_lbl_b8a96b" xml:lang="en-US">United States [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesTypeLeaseRevenue" xlink:to="us-gaap_SalesTypeLeaseRevenue_lbl_4e2a71" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SalesTypeLeaseRevenue_lbl_4e2a71" xml:lang="en-US">Sales, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesTypeLeaseRevenue" xlink:label="us-gaap_SalesTypeLeaseRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesTypeLeaseRevenue" xlink:to="us-gaap_SalesTypeLeaseRevenue_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SalesTypeLeaseRevenue_lbl_2" xml:lang="en-US">[Sales-type Lease, Revenue]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl_9d41ff" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_MajorCustomersAxis_lbl_9d41ff" xml:lang="en-US">Major Customers Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="us-gaap_ExtinguishmentOfDebtAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtinguishmentOfDebtAxis" xlink:to="us-gaap_ExtinguishmentOfDebtAxis_lbl_68726c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtinguishmentOfDebtAxis_lbl_68726c" xml:lang="en-US">Extinguishment Of Debt Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl_65e776" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl_65e776" xml:lang="en-US">Income Statement Location Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl_7ae4f5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PlanNameAxis_lbl_7ae4f5" xml:lang="en-US">Plan Name Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OneVendorsMember" xlink:label="tomz_OneVendorsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OneVendorsMember" xlink:to="tomz_OneVendorsMember_lbl_7d9caf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OneVendorsMember_lbl_7d9caf" xml:lang="en-US">One Vendors</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableMember" xlink:to="us-gaap_AccountsPayableMember_lbl_bda7cf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccountsPayableMember_lbl_bda7cf" xml:lang="en-US">Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableMember" xlink:label="us-gaap_AccountsPayableMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableMember" xlink:to="us-gaap_AccountsPayableMember_lbl_1106" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsPayableMember_lbl_1106" xml:lang="en-US">Accounts Payable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TwoVendorsMember" xlink:label="tomz_TwoVendorsMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TwoVendorsMember" xlink:to="tomz_TwoVendorsMember_lbl_00f2f1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoVendorsMember_lbl_00f2f1" xml:lang="en-US">Two Vendors</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl_54b4ab" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfSalesMember_lbl_54b4ab" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PreferredAStockMember" xlink:label="tomz_PreferredAStockMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PreferredAStockMember" xlink:to="tomz_PreferredAStockMember_lbl_f7249f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PreferredAStockMember_lbl_f7249f" xml:lang="en-US">Preferred A stock</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="tomz_EquityIncentivePlanOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquityIncentivePlanOneMember" xlink:to="tomz_EquityIncentivePlanOneMember_lbl_449400" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityIncentivePlanOneMember_lbl_449400" xml:lang="en-US">2016 Equity Incentive Plan</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic_lbl_7e2667" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic_lbl_7e2667" xml:lang="en-US">Net income (loss)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:to="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic_lbl_2" xml:lang="en-US">[Net Income (Loss) Available to Common Stockholders, Basic]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInContinuingOperations" xlink:label="us-gaap_NetCashProvidedByUsedInContinuingOperations" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInContinuingOperations" xlink:to="us-gaap_NetCashProvidedByUsedInContinuingOperations_lbl_6768b8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_NetCashProvidedByUsedInContinuingOperations_lbl_6768b8" xml:lang="en-US">Cash used in operations</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_f31219" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl_f31219" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RetainedEarningAccumulatedDeficit" xlink:label="tomz_RetainedEarningAccumulatedDeficit" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RetainedEarningAccumulatedDeficit" xlink:to="tomz_RetainedEarningAccumulatedDeficit_lbl_468a32" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RetainedEarningAccumulatedDeficit_lbl_468a32" xml:lang="en-US">Accumulated deficit</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RecognizeRevenue" xlink:label="tomz_RecognizeRevenue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RecognizeRevenue" xlink:to="tomz_RecognizeRevenue_lbl_f0a224" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RecognizeRevenue_lbl_f0a224" xml:lang="en-US">Recognize revenue</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SalesReturnsAllowanceDuringPeriod" xlink:label="tomz_SalesReturnsAllowanceDuringPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SalesReturnsAllowanceDuringPeriod" xlink:to="tomz_SalesReturnsAllowanceDuringPeriod_lbl_ba390e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SalesReturnsAllowanceDuringPeriod_lbl_ba390e" xml:lang="en-US">Allowance for sales returns</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InventoryValuationReserve" xlink:to="tomz_InventoryValuationReserve_lbl_1bd72a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_InventoryValuationReserve_lbl_1bd72a" xml:lang="en-US">Inventory Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryValuationReserve" xlink:label="tomz_InventoryValuationReserve" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_InventoryValuationReserve" xlink:to="tomz_InventoryValuationReserve_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_InventoryValuationReserve_lbl_8" xml:lang="en-US">[Inventory Reserve]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl_86e015" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_lbl_86e015" xml:lang="en-US">Warranty Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdvertisingExpense" xlink:label="us-gaap_AdvertisingExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdvertisingExpense" xlink:to="us-gaap_AdvertisingExpense_lbl_fa5649" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AdvertisingExpense_lbl_fa5649" xml:lang="en-US">Advertising And Promotional Expenses</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherResearchAndDevelopmentExpense" xlink:label="us-gaap_OtherResearchAndDevelopmentExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherResearchAndDevelopmentExpense" xlink:to="us-gaap_OtherResearchAndDevelopmentExpense_lbl_a71fec" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherResearchAndDevelopmentExpense_lbl_a71fec" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_6d65c2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_6d65c2" xml:lang="en-US">Issued shares of common stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="us-gaap_FederalDepositInsuranceCorporationPremiumExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:to="us-gaap_FederalDepositInsuranceCorporationPremiumExpense_lbl_21b66b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FederalDepositInsuranceCorporationPremiumExpense_lbl_21b66b" xml:lang="en-US">Cash Balances At Financial Institutions</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConcentrationRiskPercentage" xlink:label="tomz_ConcentrationRiskPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConcentrationRiskPercentage" xlink:to="tomz_ConcentrationRiskPercentage_lbl_38106c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConcentrationRiskPercentage_lbl_38106c" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConcentrationRiskInPercentage" xlink:label="tomz_ConcentrationRiskInPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConcentrationRiskInPercentage" xlink:to="tomz_ConcentrationRiskInPercentage_lbl_42ad0c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConcentrationRiskInPercentage_lbl_42ad0c" xml:lang="en-US">Concentration Risk, In Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PotentiallyDilutiveSecurities" xlink:label="tomz_PotentiallyDilutiveSecurities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_PotentiallyDilutiveSecurities" xlink:to="tomz_PotentiallyDilutiveSecurities_lbl_14dcf2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_PotentiallyDilutiveSecurities_lbl_14dcf2" xml:lang="en-US">Potentially Dilutive Securities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl_89eb91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl_89eb91" xml:lang="en-US">Shares of common stock outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl_32bb66" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl_32bb66" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoods" xlink:label="us-gaap_InventoryFinishedGoods" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoods" xlink:to="us-gaap_InventoryFinishedGoods_lbl_59c0c5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryFinishedGoods_lbl_59c0c5" xml:lang="en-US">Finished Goods</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterials" xlink:label="us-gaap_InventoryRawMaterials" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterials" xlink:to="us-gaap_InventoryRawMaterials_lbl_3d339b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryRawMaterials_lbl_3d339b" xml:lang="en-US">Raw Materials</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_54a1f3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_InventoryValuationReserves_lbl_54a1f3" xml:lang="en-US">Inventory Reserve</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryValuationReserves" xlink:label="us-gaap_InventoryValuationReserves" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryValuationReserves" xlink:to="us-gaap_InventoryValuationReserves_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryValuationReserves_lbl_4" xml:lang="en-US">[Inventory Valuation Reserves]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl_f2cb9f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_InventoryNet_lbl_f2cb9f" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InventoryNet_lbl_5" xml:lang="en-US">[Inventory, Net]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Deposits" xlink:label="us-gaap_Deposits" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Deposits" xlink:to="us-gaap_Deposits_lbl_7adc5e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Deposits_lbl_7adc5e" xml:lang="en-US">Vendor deposits</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesGross" xlink:label="us-gaap_FurnitureAndFixturesGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FurnitureAndFixturesGross" xlink:to="us-gaap_FurnitureAndFixturesGross_lbl_643805" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FurnitureAndFixturesGross_lbl_643805" xml:lang="en-US">Furniture And Fixtures</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquipmentsGross" xlink:label="tomz_EquipmentsGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquipmentsGross" xlink:to="tomz_EquipmentsGross_lbl_e6cca6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquipmentsGross_lbl_e6cca6" xml:lang="en-US">Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:to="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_c1b9eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles_lbl_c1b9eb" xml:lang="en-US">Vehicles</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CapitalizedComputerSoftwareGross" xlink:label="us-gaap_CapitalizedComputerSoftwareGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalizedComputerSoftwareGross" xlink:to="us-gaap_CapitalizedComputerSoftwareGross_lbl_e03ce1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalizedComputerSoftwareGross_lbl_e03ce1" xml:lang="en-US">Computer And Software</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseholdImprovementsGross" xlink:label="us-gaap_LeaseholdImprovementsGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseholdImprovementsGross" xlink:to="us-gaap_LeaseholdImprovementsGross_lbl_53ef18" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LeaseholdImprovementsGross_lbl_53ef18" xml:lang="en-US">Leasehold Improvements</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConstructionInProgressGross" xlink:label="us-gaap_ConstructionInProgressGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionInProgressGross" xlink:to="us-gaap_ConstructionInProgressGross_lbl_30e87a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConstructionInProgressGross_lbl_30e87a" xml:lang="en-US">Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross_lbl_c6bf50" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentGross_lbl_c6bf50" xml:lang="en-US">Total cost of Property and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_c26be7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_lbl_c26be7" xml:lang="en-US">Less: Accumulated Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentOtherNet" xlink:label="us-gaap_PropertyPlantAndEquipmentOtherNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentOtherNet" xlink:to="us-gaap_PropertyPlantAndEquipmentOtherNet_lbl_3aca4f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PropertyPlantAndEquipmentOtherNet_lbl_3aca4f" xml:lang="en-US">Property And Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation_lbl_a5fcb1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_Depreciation_lbl_a5fcb1" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AmortizationOfTenantImprovementAllowance" xlink:label="tomz_AmortizationOfTenantImprovementAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AmortizationOfTenantImprovementAllowance" xlink:to="tomz_AmortizationOfTenantImprovementAllowance_lbl_7145e1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AmortizationOfTenantImprovementAllowance_lbl_7145e1" xml:lang="en-US">Amortization of tenant improvement allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl_2d5f84" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl_2d5f84" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntellectualPropertyMember" xlink:label="us-gaap_IntellectualPropertyMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntellectualPropertyMember" xlink:to="us-gaap_IntellectualPropertyMember_lbl_cf161f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IntellectualPropertyMember_lbl_cf161f" xml:lang="en-US">Intellectual Property And Patents [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_46e151" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl_46e151" xml:lang="en-US">Intellectual Property And Patents</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_0dd45b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl_0dd45b" xml:lang="en-US">Less: Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_cc0610" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl_cc0610" xml:lang="en-US">Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IndefiniteLivedTrademarks" xlink:label="us-gaap_IndefiniteLivedTrademarks" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndefiniteLivedTrademarks" xlink:to="us-gaap_IndefiniteLivedTrademarks_lbl_406705" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_IndefiniteLivedTrademarks_lbl_406705" xml:lang="en-US">Trademarks</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_9e2aa3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_IntangibleAssetsNetExcludingGoodwill_lbl_9e2aa3" xml:lang="en-US">Total Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl_1fee05" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_lbl_1fee05" xml:lang="en-US">Amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl_3e6608" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl_3e6608" xml:lang="en-US">April 1 - December 31, 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl_8e1516" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl_8e1516" xml:lang="en-US">December 31, 2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl_d98652" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl_d98652" xml:lang="en-US">December 31, 2027</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl_4b9040" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl_4b9040" xml:lang="en-US">December 31, 2028</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl_84e5c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_lbl_84e5c6" xml:lang="en-US">December 31, 2029</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl_99c0c7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_lbl_99c0c7" xml:lang="en-US">Thereafter</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_FiniteLivedIntangibleAssetNet" xlink:to="tomz_FiniteLivedIntangibleAssetNet_lbl_fca188" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="tomz_FiniteLivedIntangibleAssetNet_lbl_fca188" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_FiniteLivedIntangibleAssetNet" xlink:label="tomz_FiniteLivedIntangibleAssetNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_FiniteLivedIntangibleAssetNet" xlink:to="tomz_FiniteLivedIntangibleAssetNet_lbl_9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_FiniteLivedIntangibleAssetNet_lbl_9" xml:lang="en-US">[Total]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl_4eb88c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl_4eb88c" xml:lang="en-US">Amortization Expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl_5f7570" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl_5f7570" xml:lang="en-US">Operating Lease Right Of Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAbstract" xlink:label="us-gaap_LiabilitiesAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAbstract" xlink:to="us-gaap_LiabilitiesAbstract_lbl_c02b98" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LiabilitiesAbstract_lbl_c02b98" xml:lang="en-US">Liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_212fea" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_212fea" xml:lang="en-US">Current Portion Of Long-term Operating Lease</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_eda989" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_eda989" xml:lang="en-US">Long-term Operating Lease, Net Of Current Portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl_1151a9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OperatingLeaseLiability_lbl_1151a9" xml:lang="en-US">Total</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseLiability_lbl_6" xml:lang="en-US">[Operating Lease, Liability]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseExpense" xlink:label="us-gaap_OperatingLeaseExpense" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseExpense" xlink:to="us-gaap_OperatingLeaseExpense_lbl_ebe6c9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseExpense_lbl_ebe6c9" xml:lang="en-US">Operating Lease Expense</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:label="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:to="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm_lbl_07a12a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm_lbl_07a12a" xml:lang="en-US">Weighted-average Remaining Lease Term: Operating Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseDiscountRate" xlink:label="us-gaap_LesseeOperatingLeaseDiscountRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseDiscountRate" xlink:to="us-gaap_LesseeOperatingLeaseDiscountRate_lbl_e0fb7c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseDiscountRate_lbl_e0fb7c" xml:lang="en-US">Discount Rate: Operating Leases</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:label="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:to="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm_lbl_e834dc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm_lbl_e834dc" xml:lang="en-US">Cash Paid For Amounts Included In The Measurement Of Lease Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_e3af31" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_lbl_e3af31" xml:lang="en-US">October 1 - December 31, 2025</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_cebdce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_cebdce" xml:lang="en-US">December 31, 2026</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_lbl_3" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Two]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_5be960" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_5be960" xml:lang="en-US">December 31, 2027</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_lbl_4" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Three]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_ef1515" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_ef1515" xml:lang="en-US">December 31, 2028</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_lbl_5" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Four]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_5aed06" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_5aed06" xml:lang="en-US">December 31, 2029</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_lbl_6" xml:lang="en-US">[Lessee, Operating Lease, Liability, to be Paid, Year Five]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_679717" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_lbl_679717" xml:lang="en-US">Total Minimum Lease Payments</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_8b02c6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount_lbl_8b02c6" xml:lang="en-US">Less: Interest</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CapitalLeaseObligationsCurrent" xlink:label="us-gaap_CapitalLeaseObligationsCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalLeaseObligationsCurrent" xlink:to="us-gaap_CapitalLeaseObligationsCurrent_lbl_023d05" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CapitalLeaseObligationsCurrent_lbl_023d05" xml:lang="en-US">Imputed Value Of Lease Obligations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl_d48418" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl_d48418" xml:lang="en-US">Less: Current Portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_2d92ce" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl_2d92ce" xml:lang="en-US">Long-term Portion Of Lease Obligations</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TermLease" xlink:label="tomz_TermLease" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TermLease" xlink:to="tomz_TermLease_lbl_4c81c3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TermLease_lbl_4c81c3" xml:lang="en-US">Term Lease</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AreaOfLand" xlink:label="us-gaap_AreaOfLand" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AreaOfLand" xlink:to="us-gaap_AreaOfLand_lbl_be1c21" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AreaOfLand_lbl_be1c21" xml:lang="en-US">Area Of Lease Facility</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="us-gaap_OperatingLeasesRentExpenseNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesRentExpenseNet" xlink:to="us-gaap_OperatingLeasesRentExpenseNet_lbl_07943e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OperatingLeasesRentExpenseNet_lbl_07943e" xml:lang="en-US">Annual Rent Lease</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MaximumIncreasesRentPercentage" xlink:label="tomz_MaximumIncreasesRentPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MaximumIncreasesRentPercentage" xlink:to="tomz_MaximumIncreasesRentPercentage_lbl_0b5057" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MaximumIncreasesRentPercentage_lbl_0b5057" xml:lang="en-US">Increases Rent Percentage Escalation Clause</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WorkersCompensationDiscountPercent" xlink:label="us-gaap_WorkersCompensationDiscountPercent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WorkersCompensationDiscountPercent" xlink:to="us-gaap_WorkersCompensationDiscountPercent_lbl_dce15f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_WorkersCompensationDiscountPercent_lbl_dce15f" xml:lang="en-US">Discount Rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:label="us-gaap_PaymentsForProceedsFromTenantAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:to="us-gaap_PaymentsForProceedsFromTenantAllowance_lbl_e9e268" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentsForProceedsFromTenantAllowance_lbl_e9e268" xml:lang="en-US">Landlord Tenant Improvement Allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProceedsFromServiceContractOfReceivables" xlink:label="tomz_ProceedsFromServiceContractOfReceivables" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProceedsFromServiceContractOfReceivables" xlink:to="tomz_ProceedsFromServiceContractOfReceivables_lbl_dfb31b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProceedsFromServiceContractOfReceivables_lbl_dfb31b" xml:lang="en-US">Annual payments on contract received</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssets" xlink:label="us-gaap_PrepaidExpenseAndOtherAssets" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssets" xlink:to="us-gaap_PrepaidExpenseAndOtherAssets_lbl_6f4154" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PrepaidExpenseAndOtherAssets_lbl_6f4154" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AnnualPaymentsOnContractExpired" xlink:label="tomz_AnnualPaymentsOnContractExpired" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AnnualPaymentsOnContractExpired" xlink:to="tomz_AnnualPaymentsOnContractExpired_lbl_b97285" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AnnualPaymentsOnContractExpired_lbl_b97285" xml:lang="en-US">Annual payments on contract expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:label="us-gaap_CostOfGoodsAndServicesSoldAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:to="us-gaap_CostOfGoodsAndServicesSoldAmortization_lbl_cacd0a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CostOfGoodsAndServicesSoldAmortization_lbl_cacd0a" xml:lang="en-US">Amortization expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract" xlink:label="us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract" xlink:to="us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract_lbl_42a432" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract_lbl_42a432" xml:lang="en-US">Convertible debt</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleNotesPayableGross" xlink:label="tomz_ConvertibleNotesPayableGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ConvertibleNotesPayableGross" xlink:to="tomz_ConvertibleNotesPayableGross_lbl_bcd59e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ConvertibleNotesPayableGross_lbl_bcd59e" xml:lang="en-US">Convertible notes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet" xlink:to="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet_lbl_7475b7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet_lbl_7475b7" xml:lang="en-US">Less: Debt issuance costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet" xlink:label="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet" xlink:to="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet_lbl_4" xml:lang="en-US">[Debt Issuance Costs, Line of Credit Arrangements, Net]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GroundLeasesAccumulatedAmortization" xlink:label="us-gaap_GroundLeasesAccumulatedAmortization" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GroundLeasesAccumulatedAmortization" xlink:to="us-gaap_GroundLeasesAccumulatedAmortization_lbl_20d335" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_GroundLeasesAccumulatedAmortization_lbl_20d335" xml:lang="en-US">Accumulated amortization</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleNotesPayable" xlink:label="us-gaap_ConvertibleNotesPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConvertibleNotesPayable" xlink:to="us-gaap_ConvertibleNotesPayable_lbl_4d2ccb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConvertibleNotesPayable_lbl_4d2ccb" xml:lang="en-US">Convertible notes, net</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateAxis" xlink:label="us-gaap_AwardDateAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardDateAxis" xlink:to="us-gaap_AwardDateAxis_lbl_cc746a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardDateAxis_lbl_cc746a" xml:lang="en-US">Award Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_JuneTwoThousandTwentyFiveMember" xlink:label="tomz_JuneTwoThousandTwentyFiveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_JuneTwoThousandTwentyFiveMember" xlink:to="tomz_JuneTwoThousandTwentyFiveMember_lbl_015548" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_JuneTwoThousandTwentyFiveMember_lbl_015548" xml:lang="en-US">June 2025</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OctoberandNovemberTwoThousandTwentyThreeMember" xlink:label="tomz_OctoberandNovemberTwoThousandTwentyThreeMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_OctoberandNovemberTwoThousandTwentyThreeMember" xlink:to="tomz_OctoberandNovemberTwoThousandTwentyThreeMember_lbl_e48766" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_OctoberandNovemberTwoThousandTwentyThreeMember_lbl_e48766" xml:lang="en-US">October and November 2023</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfFinancingCosts" xlink:to="us-gaap_AmortizationOfFinancingCosts_lbl_5fa14e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AmortizationOfFinancingCosts_lbl_5fa14e" xml:lang="en-US">Amortization of deferred financing costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProceedsFromConvertiblePromissoryNotesIssuance" xlink:label="tomz_ProceedsFromConvertiblePromissoryNotesIssuance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ProceedsFromConvertiblePromissoryNotesIssuance" xlink:to="tomz_ProceedsFromConvertiblePromissoryNotesIssuance_lbl_079585" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ProceedsFromConvertiblePromissoryNotesIssuance_lbl_079585" xml:lang="en-US">Proceeds from convertible promissory notes</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" xlink:label="us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" xlink:to="us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities_lbl_de1cdc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities_lbl_de1cdc" xml:lang="en-US">Convertible promissory notes issued</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DescriptionOfConvertibleNote" xlink:label="tomz_DescriptionOfConvertibleNote" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DescriptionOfConvertibleNote" xlink:to="tomz_DescriptionOfConvertibleNote_lbl_eb08a7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DescriptionOfConvertibleNote_lbl_eb08a7" xml:lang="en-US">Convertible note description</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:to="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl_5919dc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InvestmentOwnedBalancePrincipalAmount_lbl_5919dc" xml:lang="en-US">Principal amount</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateDuringPeriod" xlink:label="us-gaap_DebtInstrumentInterestRateDuringPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentInterestRateDuringPeriod" xlink:to="us-gaap_DebtInstrumentInterestRateDuringPeriod_lbl_37caf2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DebtInstrumentInterestRateDuringPeriod_lbl_37caf2" xml:lang="en-US">Interest rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpenseDebt" xlink:label="us-gaap_InterestExpenseDebt" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpenseDebt" xlink:to="us-gaap_InterestExpenseDebt_lbl_2753ee" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestExpenseDebt_lbl_2753ee" xml:lang="en-US">Interest expense</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="us-gaap_SharesIssuedPricePerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesIssuedPricePerShare" xlink:to="us-gaap_SharesIssuedPricePerShare_lbl_0b7fc2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharesIssuedPricePerShare_lbl_0b7fc2" xml:lang="en-US">Exercise price</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AmortizationOfFinancingCostsAdditions" xlink:label="tomz_AmortizationOfFinancingCostsAdditions" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AmortizationOfFinancingCostsAdditions" xlink:to="tomz_AmortizationOfFinancingCostsAdditions_lbl_893c0d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AmortizationOfFinancingCostsAdditions_lbl_893c0d" xml:lang="en-US">Additions deferred financing costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionMember" xlink:label="us-gaap_StockOptionMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockOptionMember" xlink:to="us-gaap_StockOptionMember_lbl_5d28f1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockOptionMember_lbl_5d28f1" xml:lang="en-US">Stock Option [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_af5111" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_af5111" xml:lang="en-US">Outstanding, beginning of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_2" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_c783e3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl_c783e3" xml:lang="en-US">Granted</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl_0d2201" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl_0d2201" xml:lang="en-US">Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl_4" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl_00f58d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl_00f58d" xml:lang="en-US">Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_lbl_5" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Expirations in Period]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_89f707" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_89f707" xml:lang="en-US">Outstanding, end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_db3889" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_db3889" xml:lang="en-US">Weighted average exercise price outstanding, Beginning balance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_7" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_988818" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_988818" xml:lang="en-US">Weighted average exercise price, Granted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_7978c1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_7978c1" xml:lang="en-US">Weighted average exercise price, Exercised</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" xlink:label="tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" xlink:to="tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice_lbl_8f678c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice_lbl_8f678c" xml:lang="en-US">Weighted average exercise price, Expired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_de1c0b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl_de1c0b" xml:lang="en-US">Weighted average exercise price outstanding, Ending balance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="us-gaap_OptionIndexedToIssuersEquityEquityAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:to="us-gaap_OptionIndexedToIssuersEquityEquityAxis_lbl_fcfe5d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OptionIndexedToIssuersEquityEquityAxis_lbl_fcfe5d" xml:lang="en-US">Option Indexed To Issuers Equity Equity Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointSevenOneMember" xlink:label="tomz_RangeZeroPointSevenOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeZeroPointSevenOneMember" xlink:to="tomz_RangeZeroPointSevenOneMember_lbl_0ff8a3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeZeroPointSevenOneMember_lbl_0ff8a3" xml:lang="en-US">Range $0.71</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointSevenFiveMember" xlink:label="tomz_RangeZeroPointSevenFiveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeZeroPointSevenFiveMember" xlink:to="tomz_RangeZeroPointSevenFiveMember_lbl_ff0918" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeZeroPointSevenFiveMember_lbl_ff0918" xml:lang="en-US">Range $0.75</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointEightZeroMember" xlink:label="tomz_RangeZeroPointEightZeroMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeZeroPointEightZeroMember" xlink:to="tomz_RangeZeroPointEightZeroMember_lbl_982879" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeZeroPointEightZeroMember_lbl_982879" xml:lang="en-US">Range $0.80</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointEightFiveMember" xlink:label="tomz_RangeZeroPointEightFiveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeZeroPointEightFiveMember" xlink:to="tomz_RangeZeroPointEightFiveMember_lbl_07d069" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeZeroPointEightFiveMember_lbl_07d069" xml:lang="en-US">Range $0.85</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeOnePointOneTwoMember" xlink:label="tomz_RangeOnePointOneTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeOnePointOneTwoMember" xlink:to="tomz_RangeOnePointOneTwoMember_lbl_bf7620" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeOnePointOneTwoMember_lbl_bf7620" xml:lang="en-US">Range $1.12</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeOnePointNineThreeMember" xlink:label="tomz_RangeOnePointNineThreeMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeOnePointNineThreeMember" xlink:to="tomz_RangeOnePointNineThreeMember_lbl_7525e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeOnePointNineThreeMember_lbl_7525e6" xml:lang="en-US">Range $1.93</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeFourPointFourZeroMember" xlink:label="tomz_RangeFourPointFourZeroMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeFourPointFourZeroMember" xlink:to="tomz_RangeFourPointFourZeroMember_lbl_1adfa8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeFourPointFourZeroMember_lbl_1adfa8" xml:lang="en-US">Range $4.40</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeSevenPointZeroSixMember" xlink:label="tomz_RangeSevenPointZeroSixMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RangeSevenPointZeroSixMember" xlink:to="tomz_RangeSevenPointZeroSixMember_lbl_c8e263" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RangeSevenPointZeroSixMember_lbl_c8e263" xml:lang="en-US">Range $7.06</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_9851e6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl_9851e6" xml:lang="en-US">Number of outstanding shares</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_28e1d5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_28e1d5" xml:lang="en-US">Average Weighted Remaining Contractual Life in Years, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_d1d8e5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_d1d8e5" xml:lang="en-US">Number of Exercisable Options</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_8701d2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_8701d2" xml:lang="en-US">Weighted Average Exercise Price, Exercisable Options</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_a272fb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_a272fb" xml:lang="en-US">Outstanding, beginning of period</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_2" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl_ea721e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl_ea721e" xml:lang="en-US">Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl_3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_lbl_3" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Expirations]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_09d08e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_09d08e" xml:lang="en-US">Outstanding, end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_f10acf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl_f10acf" xml:lang="en-US">Weighted average exercise price, Granted</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_1a1160" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl_1a1160" xml:lang="en-US">Weighted average exercise price, Exercised</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_4b9071" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_4b9071" xml:lang="en-US">Weighted average exercise price, Expired</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_lbl_8" xml:lang="en-US">[Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Expirations in Period, Weighted Average Exercise Price]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis_lbl_7a1c6f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AwardTypeAxis_lbl_7a1c6f" xml:lang="en-US">Award Type Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsOneMember" xlink:label="tomz_WarrantsOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsOneMember" xlink:to="tomz_WarrantsOneMember_lbl_38315b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsOneMember_lbl_38315b" xml:lang="en-US">$ 0.64</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsTwoMember" xlink:label="tomz_WarrantsTwoMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsTwoMember" xlink:to="tomz_WarrantsTwoMember_lbl_e332e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTwoMember_lbl_e332e7" xml:lang="en-US">$ 0.80</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsThreeMember" xlink:label="tomz_WarrantsThreeMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsThreeMember" xlink:to="tomz_WarrantsThreeMember_lbl_be304f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsThreeMember_lbl_be304f" xml:lang="en-US">$ 0.96</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsSevenMember" xlink:label="tomz_WarrantsSevenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsSevenMember" xlink:to="tomz_WarrantsSevenMember_lbl_3e84eb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsSevenMember_lbl_3e84eb" xml:lang="en-US">$ 1.68</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsEightMember" xlink:label="tomz_WarrantsEightMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsEightMember" xlink:to="tomz_WarrantsEightMember_lbl_1004f6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsEightMember_lbl_1004f6" xml:lang="en-US">$ 2.18</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsTenMember" xlink:label="tomz_WarrantsTenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsTenMember" xlink:to="tomz_WarrantsTenMember_lbl_dad2cb" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsTenMember_lbl_dad2cb" xml:lang="en-US">$ 4.00</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsElevenMember" xlink:label="tomz_WarrantsElevenMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsElevenMember" xlink:to="tomz_WarrantsElevenMember_lbl_4e70e3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsElevenMember_lbl_4e70e3" xml:lang="en-US">$ 6.95</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_06ea4b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_lbl_06ea4b" xml:lang="en-US">Average Weighted Remaining Contractual Life in Years, Outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_598936" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_lbl_598936" xml:lang="en-US">Outstanding, Beginning Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_4cca0d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl_4cca0d" xml:lang="en-US">Exercisable Warrants</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_3753b9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl_3753b9" xml:lang="en-US">Weighted Average Exercise Price, Exercisable</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MayTwentyTwentyFiveMember" xlink:label="tomz_MayTwentyTwentyFiveMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MayTwentyTwentyFiveMember" xlink:to="tomz_MayTwentyTwentyFiveMember_lbl_66910e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MayTwentyTwentyFiveMember_lbl_66910e" xml:lang="en-US">May 2025 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MayTwentyTwentyFourMember" xlink:label="tomz_MayTwentyTwentyFourMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MayTwentyTwentyFourMember" xlink:to="tomz_MayTwentyTwentyFourMember_lbl_866b59" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MayTwentyTwentyFourMember_lbl_866b59" xml:lang="en-US">May 2024 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:to="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_2cc2d9" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_StockIssuedDuringPeriodSharesNewIssues_lbl_2cc2d9" xml:lang="en-US">Common stock share issued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl_dda634" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_CommonStockValue_lbl_dda634" xml:lang="en-US">Common stock value</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:to="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock_lbl_870ff6" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_WarrantsIssuedUponPurchaseShareOfCommonStock_lbl_870ff6" xml:lang="en-US">Option to purchase of common stock</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_9c8e83" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_9c8e83" xml:lang="en-US">Exercise price</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_lbl_5" xml:lang="en-US">[Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Exercise Price]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl_db1325" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl_db1325" xml:lang="en-US">Fair value of stock option</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:to="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl_b594a4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1_lbl_b594a4" xml:lang="en-US">Contractual term</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl_476276" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_lbl_476276" xml:lang="en-US">Volatility rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl_d4bd59" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_lbl_d4bd59" xml:lang="en-US">Expected dividend yield</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl_861ea3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_lbl_861ea3" xml:lang="en-US">Risk free interest rate</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl_4fd922" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_lbl_4fd922" xml:lang="en-US">Expected life term</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GrantFairValueOfPerShare" xlink:label="tomz_GrantFairValueOfPerShare" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_GrantFairValueOfPerShare" xlink:to="tomz_GrantFairValueOfPerShare_lbl_9ac112" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_GrantFairValueOfPerShare_lbl_9ac112" xml:lang="en-US">Grant fair value of per share</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl_f01d28" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl_f01d28" xml:lang="en-US">Preferred stock, Shares Authorized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl_8f076a" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesIssued_lbl_8f076a" xml:lang="en-US">Convertible Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeConvertiblePreferredStockStatedValue" xlink:label="tomz_CumulativeConvertiblePreferredStockStatedValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CumulativeConvertiblePreferredStockStatedValue" xlink:to="tomz_CumulativeConvertiblePreferredStockStatedValue_lbl_ebd6c8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CumulativeConvertiblePreferredStockStatedValue_lbl_ebd6c8" xml:lang="en-US">Convertible Preferred Stock, Stated Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl_67a536" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl_67a536" xml:lang="en-US">Convertible Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeDividendOfPreferredStock" xlink:label="tomz_CumulativeDividendOfPreferredStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CumulativeDividendOfPreferredStock" xlink:to="tomz_CumulativeDividendOfPreferredStock_lbl_f28f94" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CumulativeDividendOfPreferredStock_lbl_f28f94" xml:lang="en-US">Cumulative dividend</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_000e4e" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl_000e4e" xml:lang="en-US">Convertible Preferred Stock, Par Value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis_lbl_1657d5" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_TitleOfIndividualAxis_lbl_1657d5" xml:lang="en-US">Title and Position [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAxis" xlink:label="us-gaap_RelatedPartyTransactionAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionAxis" xlink:to="us-gaap_RelatedPartyTransactionAxis_lbl_889258" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_RelatedPartyTransactionAxis_lbl_889258" xml:lang="en-US">Related Party Transaction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="tomz_ExecutiveAgreementsWithElissaJShaneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:to="tomz_ExecutiveAgreementsWithElissaJShaneMember_lbl_a37019" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExecutiveAgreementsWithElissaJShaneMember_lbl_a37019" xml:lang="en-US">Executive Agreements (Elissa J. Shane)</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CommitteeChairpersonMember" xlink:label="tomz_CommitteeChairpersonMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommitteeChairpersonMember" xlink:to="tomz_CommitteeChairpersonMember_lbl_abd746" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommitteeChairpersonMember_lbl_abd746" xml:lang="en-US">Committee Chairperson</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MrVanstonMember" xlink:label="tomz_MrVanstonMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_MrVanstonMember" xlink:to="tomz_MrVanstonMember_lbl_6954f1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_MrVanstonMember_lbl_6954f1" xml:lang="en-US">Mr. Vanston</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalariesAndWages" xlink:label="us-gaap_SalariesAndWages" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalariesAndWages" xlink:to="us-gaap_SalariesAndWages_lbl_f4470d" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SalariesAndWages_lbl_f4470d" xml:lang="en-US">Base annual salary</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DiscretionaryBonus" xlink:label="tomz_DiscretionaryBonus" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DiscretionaryBonus" xlink:to="tomz_DiscretionaryBonus_lbl_ec4eaa" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DiscretionaryBonus_lbl_ec4eaa" xml:lang="en-US">Annual discretionary bonus</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:to="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl_0d56c1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross_lbl_0d56c1" xml:lang="en-US">Restricted stock option granted</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AdditionalRestrictedStockGranted" xlink:label="tomz_AdditionalRestrictedStockGranted" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AdditionalRestrictedStockGranted" xlink:to="tomz_AdditionalRestrictedStockGranted_lbl_ddb075" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AdditionalRestrictedStockGranted_lbl_ddb075" xml:lang="en-US">Additional restricted stock option granted</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForManagementFee" xlink:label="us-gaap_PaymentForManagementFee" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForManagementFee" xlink:to="us-gaap_PaymentForManagementFee_lbl_806c2c" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_PaymentForManagementFee_lbl_806c2c" xml:lang="en-US">Increased annual fee</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:to="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent_lbl_c53de8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent_lbl_c53de8" xml:lang="en-US">Commissions</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:label="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:to="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent_lbl_b25b4b" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent_lbl_b25b4b" xml:lang="en-US">Payroll And Related Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DirectorFeesCurrentAndNoncurrent" xlink:label="tomz_DirectorFeesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DirectorFeesCurrentAndNoncurrent" xlink:to="tomz_DirectorFeesCurrentAndNoncurrent_lbl_91e9fc" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DirectorFeesCurrentAndNoncurrent_lbl_91e9fc" xml:lang="en-US">Director Fees</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SalesTaxPayable" xlink:label="tomz_SalesTaxPayable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SalesTaxPayable" xlink:to="tomz_SalesTaxPayable_lbl_19ee25" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SalesTaxPayable_lbl_19ee25" xml:lang="en-US">Sales Tax Payable</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="us-gaap_ExtendedProductWarrantyAccrualCurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:to="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl_a08285" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyAccrualCurrent_lbl_a08285" xml:lang="en-US">Accrued Warranty (note 14)</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_lbl_3faeaf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent_lbl_3faeaf" xml:lang="en-US">Other accrued expenses and current liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_146da3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl_146da3" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl_cc5b3f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_cc5b3f" xml:lang="en-US">Beginning Accrued Warranty Costs</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="us-gaap_ExtendedProductWarrantyAccrual" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl_2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_2" xml:lang="en-US">[Extended Product Warranty Accrual]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:label="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:to="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease_lbl_cbc5c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease_lbl_cbc5c0" xml:lang="en-US">Provision For Warranty Expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SettlementOfWarrantyClaims" xlink:to="tomz_SettlementOfWarrantyClaims_lbl_cf4b65" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:label="tomz_SettlementOfWarrantyClaims_lbl_cf4b65" xml:lang="en-US">Settlement Of Warranty Claims</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SettlementOfWarrantyClaims" xlink:label="tomz_SettlementOfWarrantyClaims" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_SettlementOfWarrantyClaims" xlink:to="tomz_SettlementOfWarrantyClaims_lbl_4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_SettlementOfWarrantyClaims_lbl_4" xml:lang="en-US">[Settlement Of Warranty Claims]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ExtendedProductWarrantyAccrual" xlink:to="us-gaap_ExtendedProductWarrantyAccrual_lbl_9c9c67" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:label="us-gaap_ExtendedProductWarrantyAccrual_lbl_9c9c67" xml:lang="en-US">Ending Accrued Warranty Cost</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_735e24" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance_lbl_735e24" xml:lang="en-US">Net deferred tax assets valuation allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_USDeferredTaxAssetsValuationAllowanceDescription" xlink:label="tomz_USDeferredTaxAssetsValuationAllowanceDescription" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_USDeferredTaxAssetsValuationAllowanceDescription" xlink:to="tomz_USDeferredTaxAssetsValuationAllowanceDescription_lbl_7ca223" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_USDeferredTaxAssetsValuationAllowanceDescription_lbl_7ca223" xml:lang="en-US">Description of U.S. deferred tax assets valuation allowance</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl_a543cf" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl_a543cf" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TwoCustomersMember" xlink:label="tomz_TwoCustomersMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_TwoCustomersMember" xlink:to="tomz_TwoCustomersMember_lbl_100ebd" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_TwoCustomersMember_lbl_100ebd" xml:lang="en-US">Two Customers</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl_e9b031" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_AccountsReceivableMember_lbl_e9b031" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CustomerListsOneMember" xlink:label="tomz_CustomerListsOneMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CustomerListsOneMember" xlink:to="tomz_CustomerListsOneMember_lbl_541767" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CustomerListsOneMember_lbl_541767" xml:lang="en-US">One Customer [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RevenueConcentrationRiskPercentage" xlink:label="tomz_RevenueConcentrationRiskPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_RevenueConcentrationRiskPercentage" xlink:to="tomz_RevenueConcentrationRiskPercentage_lbl_3716f0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_RevenueConcentrationRiskPercentage_lbl_3716f0" xml:lang="en-US">Revenue Concentration Risk Percentage</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsReceivableConcentrationRiskPercentage" xlink:label="tomz_AccountsReceivableConcentrationRiskPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_AccountsReceivableConcentrationRiskPercentage" xlink:to="tomz_AccountsReceivableConcentrationRiskPercentage_lbl_812d6f" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_AccountsReceivableConcentrationRiskPercentage_lbl_812d6f" xml:lang="en-US">Concentration Risk Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIncome" xlink:to="us-gaap_OtherIncome_lbl_e47df7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:label="us-gaap_OtherIncome_lbl_e47df7" xml:lang="en-US">Other Income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOther" xlink:label="us-gaap_InterestIncomeOther" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeOther" xlink:to="us-gaap_InterestIncomeOther_lbl_b910c0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_InterestIncomeOther_lbl_b910c0" xml:lang="en-US">Interest Income</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl_9e48f3" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl_9e48f3" xml:lang="en-US">Subsequent Event Type Axis</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl_7d43e7" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_SubsequentEventMember_lbl_7d43e7" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NonEmployeeDirectorMember" xlink:label="tomz_NonEmployeeDirectorMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_NonEmployeeDirectorMember" xlink:to="tomz_NonEmployeeDirectorMember_lbl_c8ccc8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_NonEmployeeDirectorMember_lbl_c8ccc8" xml:lang="en-US">Non-employee director [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ChiefFinancialOfficerMember" xlink:label="srt_ChiefFinancialOfficerMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ChiefFinancialOfficerMember" xlink:to="srt_ChiefFinancialOfficerMember_lbl_3ab3a0" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="srt_ChiefFinancialOfficerMember_lbl_3ab3a0" xml:lang="en-US">CFO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityPurchaseAgreementMember" xlink:label="tomz_EquityPurchaseAgreementMember" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquityPurchaseAgreementMember" xlink:to="tomz_EquityPurchaseAgreementMember_lbl_98db91" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityPurchaseAgreementMember_lbl_98db91" xml:lang="en-US">Equity Purchase Agreement [Member]</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CommonStockIsuable" xlink:label="tomz_CommonStockIsuable" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_CommonStockIsuable" xlink:to="tomz_CommonStockIsuable_lbl_315a60" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_CommonStockIsuable_lbl_315a60" xml:lang="en-US">Common stock to be issued</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ExcessInCommonStockPercentage" xlink:label="tomz_ExcessInCommonStockPercentage" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_ExcessInCommonStockPercentage" xlink:to="tomz_ExcessInCommonStockPercentage_lbl_761f62" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_ExcessInCommonStockPercentage_lbl_761f62" xml:lang="en-US">Stock in excess</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" xlink:label="tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" xlink:to="tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock_lbl_eb5114" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock_lbl_eb5114" xml:lang="en-US">Commitment to sell common stock</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockNoParValue" xlink:label="us-gaap_CommonStockNoParValue" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockNoParValue" xlink:to="us-gaap_CommonStockNoParValue_lbl_268c27" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_CommonStockNoParValue_lbl_268c27" xml:lang="en-US">Common stock par value</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl_74a6b1" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl_74a6b1" xml:lang="en-US">RSUs granted</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DirectorFees" xlink:label="tomz_DirectorFees" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DirectorFees" xlink:to="tomz_DirectorFees_lbl_0fe2a8" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DirectorFees_lbl_0fe2a8" xml:lang="en-US">Director fees</link:label>
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl_6d8da2" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_lbl_6d8da2" xml:lang="en-US">Vesting period</link:label>
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DescriptionOfVestingRestricatedStockUnits" xlink:label="tomz_DescriptionOfVestingRestricatedStockUnits" />
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="tomz_DescriptionOfVestingRestricatedStockUnits" xlink:to="tomz_DescriptionOfVestingRestricatedStockUnits_lbl_2dc3e4" xlink:type="arc" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/label" xlink:label="tomz_DescriptionOfVestingRestricatedStockUnits_lbl_2dc3e4" xml:lang="en-US">Vesting description</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_ContractsAndAgreementsTextBlock" xlink:to="tomz_ContractsAndAgreementsTextBlock_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_ContractsAndAgreementsTextBlock_d">Contracts and agreements text block.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:type="arc" xlink:from="tomz_AccountsPayablePolicyTextBlock" xlink:to="tomz_AccountsPayablePolicyTextBlock_d" />
    <link:label xlink:type="resource" xlink:role="http://www.xbrl.org/2003/role/documentation" xml:lang="en-US" xlink:label="tomz_AccountsPayablePolicyTextBlock_d">Custom Element.</link:label>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>8
<FILENAME>tomz-20250930_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 11/14/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20250930.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20250930.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20250930.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InsiderTradingArragements" xlink:href="tomz-20250930.xsd#InsiderTradingArragements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20250930.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20250930.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20250930.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20250930.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20250930.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20250930.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20250930.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebt" xlink:href="tomz-20250930.xsd#ConvertibleDebt" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20250930.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20250930.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20250930.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20250930.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20250930.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20250930.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SegmentReporting" xlink:href="tomz-20250930.xsd#SegmentReporting" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/EmployeeRetentionCredits" xlink:href="tomz-20250930.xsd#EmployeeRetentionCredits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20250930.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20250930.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20250930.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20250930.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtTables" xlink:href="tomz-20250930.xsd#ConvertibleDebtTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityTables" xlink:href="tomz-20250930.xsd#ShareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20250930.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20250930.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20250930.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20250930.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20250930.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20250930.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20250930.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20250930.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20250930.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20250930.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtDetails" xlink:href="tomz-20250930.xsd#ConvertibleDebtDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtDetailsNarrative" xlink:href="tomz-20250930.xsd#ConvertibleDebtDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20250930.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20250930.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20250930.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20250930.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" xlink:href="tomz-20250930.xsd#EmployeeRetentionCreditsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20250930.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Document and Entity Information" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:title="110200 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryCurrent" xlink:label="loc_tomzInventoryCurrent" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_tomzInventoryCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapDepositsAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssetsCurrent" xlink:to="loc_us-gaapPrepaidExpenseCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="loc_us-gaapOtherAssetsCurrent" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherAssets" xlink:to="loc_us-gaapOtherAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapAssetsCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" xlink:type="arc" weight="1" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapAssets" xlink:to="loc_us-gaapOtherAssets" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccountsPayableCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="loc_us-gaapDeferredRevenueCurrent" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapDeferredRevenueCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesCurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleLongTermNotesPayable" xlink:label="loc_us-gaapConvertibleLongTermNotesPayable" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesNoncurrent" xlink:to="loc_us-gaapConvertibleLongTermNotesPayable" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesCurrent" xlink:type="arc" weight="1" />
    <link:calculationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilities" xlink:to="loc_us-gaapLiabilitiesNoncurrent" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:calculationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapCommonStockValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
    <link:calculationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapAdditionalPaidInCapital" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
    <link:calculationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
    <link:calculationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapStockholdersEquity" xlink:to="loc_us-gaapPreferredStockValue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
    <link:calculationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaapCommitmentsAndContingencies" />
    <link:calculationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapCommitmentsAndContingencies" xlink:type="arc" weight="1" />
    <link:calculationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapLiabilitiesAndStockholdersEquity" xlink:to="loc_us-gaapStockholdersEquity" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:title="110201 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:title="124100 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapRevenues" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapGrossProfit" xlink:to="loc_us-gaapCostOfRevenue" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfessionalFees" xlink:label="loc_us-gaapProfessionalFees" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapProfessionalFees" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapDepreciationAndAmortization" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingExpense" xlink:label="loc_us-gaapSellingExpense" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapSellingExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapResearchAndDevelopmentExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LegalFees" xlink:label="loc_us-gaapLegalFees" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapLegalFees" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="loc_us-gaapGeneralAndAdministrativeExpense" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingExpenses" xlink:to="loc_us-gaapGeneralAndAdministrativeExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapGrossProfit" xlink:type="arc" weight="1" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOperatingIncomeLoss" xlink:to="loc_us-gaapOperatingExpenses" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="loc_us-gaapOtherNonoperatingIncomeExpense" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherIncome" xlink:label="loc_us-gaapOtherIncome" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpense" xlink:to="loc_us-gaapOtherIncome" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpense" xlink:to="loc_us-gaapInterestExpense" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOperating" xlink:label="loc_us-gaapInterestIncomeOperating" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpense" xlink:to="loc_us-gaapInterestIncomeOperating" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapOperatingIncomeLoss" xlink:type="arc" weight="1" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="loc_us-gaapOtherNonoperatingIncomeExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetIncomeLoss" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit" xlink:type="arc" weight="-1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:title="148600 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:title="170000 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfitLoss" xlink:label="loc_us-gaapProfitLoss" />
    <link:calculationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapProfitLoss" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization" />
    <link:calculationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapDepreciationAndAmortization" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense" />
    <link:calculationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="loc_us-gaapAmortizationOfFinancingCosts" />
    <link:calculationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapAmortizationOfFinancingCosts" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation" />
    <link:calculationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapShareBasedCompensation" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims" />
    <link:calculationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts" />
    <link:calculationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryLIFOReserveEffectOnIncomeNet" xlink:label="loc_us-gaapInventoryLIFOReserveEffectOnIncomeNet" />
    <link:calculationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapInventoryLIFOReserveEffectOnIncomeNet" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AllowanceOnSalesReturns" xlink:label="loc_tomzAllowanceOnSalesReturns" />
    <link:calculationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_tomzAllowanceOnSalesReturns" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable" />
    <link:calculationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories" />
    <link:calculationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInInventories" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense" />
    <link:calculationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDepositOtherAssets" xlink:label="loc_us-gaapIncreaseDecreaseInDepositOtherAssets" />
    <link:calculationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInDepositOtherAssets" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:label="loc_us-gaapIncreaseDecreaseInOtherCurrentAssets" />
    <link:calculationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInOtherCurrentAssets" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayable" />
    <link:calculationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayable" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities" />
    <link:calculationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedLiabilities" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="loc_us-gaapIncreaseDecreaseInDeferredRevenue" />
    <link:calculationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInDeferredRevenue" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability" />
    <link:calculationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="loc_us-gaapPaymentsToAcquireIntangibleAssets" />
    <link:calculationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_us-gaapPaymentsToAcquireIntangibleAssets" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment" />
    <link:calculationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:to="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" weight="-1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromConvertibleDebt" xlink:label="loc_us-gaapProceedsFromConvertibleDebt" />
    <link:calculationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromConvertibleDebt" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised" />
    <link:calculationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised" xlink:type="arc" weight="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" />
    <link:calculationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities" xlink:type="arc" weight="1" />
    <link:calculationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities" xlink:type="arc" weight="1" />
    <link:calculationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities" xlink:type="arc" weight="1" />
  </link:calculationLink>
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InsiderTradingArragements" xlink:title="170001 - Disclosure - Insider Trading Arragements" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/DescriptionOfBusiness" xlink:title="200000 - Disclosure - DESCRIPTION OF BUSINESS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="290000 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/INVENTORIES" xlink:title="340000 - Disclosure - INVENTORIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDeposits" xlink:title="778000 - Disclosure - VENDOR DEPOSITS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipment" xlink:title="778001 - Disclosure - PROPERTY AND EQUIPMENT" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssets" xlink:title="778002 - Disclosure - INTANGIBLE ASSETS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LEASES" xlink:title="842000 - Disclosure - LEASES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContract" xlink:title="842001 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebt" xlink:title="842002 - Disclosure - CONVERTIBLE DEBT" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquity" xlink:title="842003 - Disclosure - SHAREHOLDERS EQUITY" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingencies" xlink:title="842004 - Disclosure - COMMITMENTS AND CONTINGENCIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreements" xlink:title="842005 - Disclosure - CONTRACTS AND AGREEMENTS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:title="842006 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarranty" xlink:title="842007 - Disclosure - ACCRUED WARRANTY" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="995000 - Disclosure - INCOME TAXES" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="995001 - Disclosure - CUSTOMER CONCENTRATION" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SegmentReporting" xlink:title="995002 - Disclosure - SEGMENT REPORTING" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/EmployeeRetentionCredits" xlink:title="995003 - Disclosure - EMPLOYEE RETENTION CREDITS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="995004 - Disclosure - SUBSEQUENT EVENTS" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="995005 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="995006 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="995007 - Disclosure - INVENTORIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="995008 - Disclosure - PROPERTY AND EQUIPMENT (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="995009 - Disclosure - INTANGIBLE ASSETS (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="995010 - Disclosure - LEASES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtTables" xlink:title="995011 - Disclosure - CONVERTIBLE DEBT (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityTables" xlink:title="995012 - Disclosure - SHAREHOLDERS EQUITY (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="995013 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="995014 - Disclosure - ACCRUED WARRANTY (Tables)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="995015 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="995016 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="995017 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" xlink:title="995018 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" xlink:title="995019 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="995020 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="995021 - Disclosure - INVENTORIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="995022 - Disclosure - VENDOR DEPOSITS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="995023 - Disclosure - PROPERTY AND EQUIPMENT (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="995024 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="995025 - Disclosure - INTANGIBLE ASSETS (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="995026 - Disclosure - INTANGIBLE ASSETS (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="995027 - Disclosure - INTANGIBLE ASSETS (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="995028 - Disclosure - INTANGIBLE ASSETS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="995029 - Disclosure - LEASES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="995030 - Disclosure - LEASES (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="995031 - Disclosure - LEASES (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="995032 - Disclosure - LEASES (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="995033 - Disclosure - LEASES (Details 4)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="995034 - Disclosure - LEASES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="995035 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtDetails" xlink:title="995036 - Disclosure - CONVERTIBLE DEBT (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtDetailsNarrative" xlink:title="995037 - Disclosure - CONVERTIBLE DEBT (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="995038 - Disclosure - SHAREHOLDERS EQUITY (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="995039 - Disclosure - SHAREHOLDERS EQUITY (Details 1)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="995040 - Disclosure - SHAREHOLDERS EQUITY (Details 2)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="995041 - Disclosure - SHAREHOLDERS EQUITY (Details 3)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="995042 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="995043 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="995044 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="995045 - Disclosure - ACCRUED WARRANTY (Details)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="995046 - Disclosure - INCOME TAXES (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="995047 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" xlink:title="995048 - Disclosure - EMPLOYEE RETENTION CREDITS (Details Narrative)" />
  <link:calculationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="995049 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)" />
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>9
<FILENAME>tomz-20250930_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 11/14/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20250930.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20250930.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20250930.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InsiderTradingArragements" xlink:href="tomz-20250930.xsd#InsiderTradingArragements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20250930.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20250930.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20250930.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20250930.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20250930.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20250930.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20250930.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebt" xlink:href="tomz-20250930.xsd#ConvertibleDebt" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20250930.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20250930.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20250930.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20250930.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20250930.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20250930.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SegmentReporting" xlink:href="tomz-20250930.xsd#SegmentReporting" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/EmployeeRetentionCredits" xlink:href="tomz-20250930.xsd#EmployeeRetentionCredits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20250930.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20250930.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20250930.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20250930.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtTables" xlink:href="tomz-20250930.xsd#ConvertibleDebtTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityTables" xlink:href="tomz-20250930.xsd#ShareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20250930.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20250930.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20250930.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20250930.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20250930.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20250930.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20250930.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20250930.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20250930.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20250930.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtDetails" xlink:href="tomz-20250930.xsd#ConvertibleDebtDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtDetailsNarrative" xlink:href="tomz-20250930.xsd#ConvertibleDebtDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20250930.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20250930.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20250930.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20250930.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" xlink:href="tomz-20250930.xsd#EmployeeRetentionCreditsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20250930.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="loc_deiCoverAbstract" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="loc_deiEntityRegistrantName" />
    <link:presentationArc order="0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityRegistrantName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="loc_deiEntityCentralIndexKey" />
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCentralIndexKey" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="loc_deiDocumentType" />
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentType" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="loc_deiAmendmentFlag" />
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiAmendmentFlag" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="loc_deiCurrentFiscalYearEndDate" />
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCurrentFiscalYearEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="loc_deiEntitySmallBusiness" />
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntitySmallBusiness" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="loc_deiEntityShellCompany" />
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityShellCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="loc_deiEntityEmergingGrowthCompany" />
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityEmergingGrowthCompany" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="loc_deiEntityCurrentReportingStatus" />
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCurrentReportingStatus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="loc_deiDocumentPeriodEndDate" />
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentPeriodEndDate" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="loc_deiEntityFilerCategory" />
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFilerCategory" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="loc_deiDocumentFiscalPeriodFocus" />
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalPeriodFocus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="loc_deiDocumentFiscalYearFocus" />
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentFiscalYearFocus" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="loc_deiEntityCommonStockSharesOutstanding" />
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityCommonStockSharesOutstanding" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="loc_deiEntityFileNumber" />
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityFileNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="loc_deiEntityIncorporationStateCountryCode" />
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityIncorporationStateCountryCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="loc_deiEntityTaxIdentificationNumber" />
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityTaxIdentificationNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="loc_deiEntityAddressAddressLine1" />
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressAddressLine1" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="loc_deiEntityAddressCityOrTown" />
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressCityOrTown" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="loc_deiEntityAddressStateOrProvince" />
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressStateOrProvince" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="loc_deiEntityAddressPostalZipCode" />
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityAddressPostalZipCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="loc_deiCityAreaCode" />
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiCityAreaCode" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="loc_deiLocalPhoneNumber" />
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiLocalPhoneNumber" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="loc_deiSecurity12bTitle" />
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurity12bTitle" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="loc_deiTradingSymbol" />
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiTradingSymbol" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="loc_deiSecurityExchangeName" />
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiSecurityExchangeName" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="loc_deiDocumentQuarterlyReport" />
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentQuarterlyReport" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="loc_deiDocumentTransitionReport" />
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiDocumentTransitionReport" xlink:type="arc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="loc_deiEntityInteractiveDataCurrent" />
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_deiCoverAbstract" xlink:to="loc_deiEntityInteractiveDataCurrent" xlink:type="arc" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:title="110200 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_9468eb" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_09ad19" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_9468eb" xlink:to="loc_us-gaapStatementTable_09ad19" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_c90162" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_09ad19" xlink:to="loc_us-gaapStatementLineItems_c90162" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_f63c0e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_09ad19" xlink:to="loc_us-gaapStatementClassOfStockAxis_f63c0e" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_d55817" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_f63c0e" xlink:to="loc_us-gaapClassOfStockDomain_d55817" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_7d2be9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d55817" xlink:to="loc_us-gaapSeriesBPreferredStockMember_7d2be9" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_afe772" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d55817" xlink:to="loc_us-gaapSeriesAPreferredStockMember_afe772" order="1022" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract_a76142" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAssetsAbstract_a76142" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaapAssetsCurrentAbstract_4f82f1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAssetsCurrentAbstract_4f82f1" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_991a28" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_991a28" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent_330540" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAccountsReceivableNetCurrent_330540" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryCurrent" xlink:label="loc_tomzInventoryCurrent_c03582" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_tomzInventoryCurrent_c03582" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent_77ca3a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapDepositsAssetsCurrent_77ca3a" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent_d2fc16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapPrepaidExpenseCurrent_d2fc16" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent_f9020b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAssetsCurrent_f9020b" order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet_380c0f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet_380c0f" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsAbstract" xlink:label="loc_us-gaapOtherAssetsAbstract_0c3af9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapOtherAssetsAbstract_0c3af9" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_adb8c7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_adb8c7" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_f3b587" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_f3b587" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="loc_us-gaapOtherAssetsCurrent_365a10" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapOtherAssetsCurrent_365a10" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets_1f27d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapOtherAssets_1f27d1" order="14" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets_f6d782" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAssets_f6d782" order="15" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_d4561e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract_d4561e" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract_1bb2d3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract_1bb2d3" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent_8510d4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAccountsPayableCurrent_8510d4" order="18" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_ec3dbf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_ec3dbf" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="loc_us-gaapDeferredRevenueCurrent_881071" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapDeferredRevenueCurrent_881071" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_d4b318" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_d4b318" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent_601711" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilitiesCurrent_601711" order="22" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract_93932b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract_93932b" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_9b3f1a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_9b3f1a" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleLongTermNotesPayable" xlink:label="loc_us-gaapConvertibleLongTermNotesPayable_257996" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapConvertibleLongTermNotesPayable_257996" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent_210798" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilitiesNoncurrent_210798" order="26" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities_f29669" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilities_f29669" order="27" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaapCommitmentsAndContingencies_bd1480" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapCommitmentsAndContingencies_bd1480" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_2f7e9d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapStockholdersEquityAbstract_2f7e9d" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue_c676e3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapPreferredStockValue_c676e3" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_d55dde" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapCommonStockValue_d55dde" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital_46f7ac" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapAdditionalPaidInCapital_46f7ac" order="32" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit_05c47a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit_05c47a" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_f27cb9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapStockholdersEquity_f27cb9" order="34" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity_5cc996" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c90162" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity_5cc996" order="35" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:title="110201 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="loc_us-gaapStatementOfFinancialPositionAbstract_5af6a4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_711dc3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfFinancialPositionAbstract_5af6a4" xlink:to="loc_us-gaapStatementTable_711dc3" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_cc908b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_711dc3" xlink:to="loc_us-gaapStatementLineItems_cc908b" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_79dac6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_711dc3" xlink:to="loc_us-gaapStatementClassOfStockAxis_79dac6" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_b61af8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_79dac6" xlink:to="loc_us-gaapClassOfStockDomain_b61af8" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_fd4222" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_b61af8" xlink:to="loc_us-gaapSeriesBPreferredStockMember_fd4222" order="1011" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_296e82" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_b61af8" xlink:to="loc_us-gaapSeriesAPreferredStockMember_296e82" order="1012" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="loc_us-gaapDebtInstrumentUnamortizedDiscount_b1ba5b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapDebtInstrumentUnamortizedDiscount_b1ba5b" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare_613b45" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare_613b45" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_1d6dc9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapCommonStockSharesAuthorized_1d6dc9" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued_9f6246" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapCommonStockSharesIssued_9f6246" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding_a99440" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapCommonStockSharesOutstanding_a99440" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_e4b1c2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_e4b1c2" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_7a4198" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_7a4198" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_d650dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapPreferredStockSharesIssued_d650dd" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding_62bcd5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_us-gaapPreferredStockSharesOutstanding_62bcd5" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeDividendPercenatge" xlink:label="loc_tomzCumulativeDividendPercenatge_1d1d13" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_cc908b" xlink:to="loc_tomzCumulativeDividendPercenatge_1d1d13" order="10" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:title="124100 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="loc_us-gaapIncomeStatementAbstract_662f79" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="loc_us-gaapRevenues_318a01" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapRevenues_318a01" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="loc_us-gaapCostOfRevenue_e3702a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapCostOfRevenue_e3702a" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="loc_us-gaapGrossProfit_8667dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapGrossProfit_8667dd" order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostsAndExpensesAbstract" xlink:label="loc_us-gaapCostsAndExpensesAbstract_4d53d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapCostsAndExpensesAbstract_4d53d1" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfessionalFees" xlink:label="loc_us-gaapProfessionalFees_a69431" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapProfessionalFees_a69431" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_32dac5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapDepreciationAndAmortization_32dac5" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingExpense" xlink:label="loc_us-gaapSellingExpense_862e76" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapSellingExpense_862e76" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="loc_us-gaapResearchAndDevelopmentExpense_b83288" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapResearchAndDevelopmentExpense_b83288" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LegalFees" xlink:label="loc_us-gaapLegalFees_680ff8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapLegalFees_680ff8" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="loc_us-gaapGeneralAndAdministrativeExpense_70b46b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapGeneralAndAdministrativeExpense_70b46b" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="loc_us-gaapOperatingExpenses_e12024" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapOperatingExpenses_e12024" order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="loc_us-gaapOperatingIncomeLoss_993c5a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapOperatingIncomeLoss_993c5a" order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpenseAbstract" xlink:label="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCostsAndExpensesAbstract_4d53d1" xlink:to="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherIncome" xlink:label="loc_us-gaapOtherIncome_e59c06" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" xlink:to="loc_us-gaapOtherIncome_e59c06" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOperating" xlink:label="loc_us-gaapInterestIncomeOperating_db162c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" xlink:to="loc_us-gaapInterestIncomeOperating_db162c" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="loc_us-gaapInterestExpense_24d06d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" xlink:to="loc_us-gaapInterestExpense_24d06d" order="16" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="loc_us-gaapOtherNonoperatingIncomeExpense_74b318" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" xlink:to="loc_us-gaapOtherNonoperatingIncomeExpense_74b318" order="17" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_fdd2b9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" xlink:to="loc_us-gaapIncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_fdd2b9" order="18" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="loc_us-gaapIncomeTaxExpenseBenefit_d832c4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOtherNonoperatingIncomeExpenseAbstract_02514b" xlink:to="loc_us-gaapIncomeTaxExpenseBenefit_d832c4" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_1b0ac9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapNetIncomeLoss_1b0ac9" order="20" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="loc_us-gaapEarningsPerShareAbstract_419581" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapEarningsPerShareAbstract_419581" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="loc_us-gaapEarningsPerShareBasic_2440a3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_419581" xlink:to="loc_us-gaapEarningsPerShareBasic_2440a3" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="loc_us-gaapEarningsPerShareDiluted_b65b3f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEarningsPerShareAbstract_419581" xlink:to="loc_us-gaapEarningsPerShareDiluted_b65b3f" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_c6aa53" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesOutstandingBasic_c6aa53" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_12166c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementAbstract_662f79" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_12166c" order="25" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:title="148600 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="loc_us-gaapStatementOfStockholdersEquityAbstract_0753dc" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_9973ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfStockholdersEquityAbstract_0753dc" xlink:to="loc_us-gaapStatementTable_9973ab" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_b76f8a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_9973ab" xlink:to="loc_us-gaapStatementLineItems_b76f8a" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis_341736" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_9973ab" xlink:to="loc_us-gaapStatementEquityComponentsAxis_341736" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_d4ca73" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementEquityComponentsAxis_341736" xlink:to="loc_us-gaapEquityComponentDomain_d4ca73" order="1020" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="loc_tomzSeriesAPreferredStocksMember_9e28fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_d4ca73" xlink:to="loc_tomzSeriesAPreferredStocksMember_9e28fa" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember_b4b995" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_d4ca73" xlink:to="loc_us-gaapCommonStockMember_b4b995" order="1022" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember_4418c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_d4ca73" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember_4418c1" order="1023" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember_1909e6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapEquityComponentDomain_d4ca73" xlink:to="loc_us-gaapRetainedEarningsMember_1909e6" order="1024" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_8084b1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapSharesIssued_8084b1" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_9a1705" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapStockholdersEquity_9a1705" order="2" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OptionsExercisedShares" xlink:label="loc_tomzOptionsExercisedShares_ef820b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_tomzOptionsExercisedShares_ef820b" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OptionsExercisedAmount" xlink:label="loc_tomzOptionsExercisedAmount_1f557a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_tomzOptionsExercisedAmount_1f557a" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices_27cecf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices_27cecf" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices_0b8d86" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices_0b8d86" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_247dde" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_247dde" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_be06b7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapNetIncomeLoss_be06b7" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued_31c052" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapSharesIssued_31c052" order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity_acfe7b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b76f8a" xlink:to="loc_us-gaapStockholdersEquity_acfe7b" order="10" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:title="170000 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="loc_us-gaapStatementOfCashFlowsAbstract_94214d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_84ce42" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_84ce42" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfitLoss" xlink:label="loc_us-gaapProfitLoss_aea61a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_84ce42" xlink:to="loc_us-gaapProfitLoss_aea61a" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInOperatingActivitiesAbstract_84ce42" xlink:to="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepreciationAndAmortization" xlink:label="loc_us-gaapDepreciationAndAmortization_3618d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapDepreciationAndAmortization_3618d9" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense_da08b3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAssetAmortizationExpense_da08b3" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="loc_us-gaapAmortizationOfFinancingCosts_8fd9c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapAmortizationOfFinancingCosts_8fd9c3" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="loc_us-gaapShareBasedCompensation_e2c6c6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapShareBasedCompensation_e2c6c6" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims" xlink:label="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims_5c2b00" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapIssuanceOfStockAndWarrantsForServicesOrClaims_5c2b00" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForDoubtfulAccounts" xlink:label="loc_us-gaapProvisionForDoubtfulAccounts_ab333c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapProvisionForDoubtfulAccounts_ab333c" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryLIFOReserveEffectOnIncomeNet" xlink:label="loc_us-gaapInventoryLIFOReserveEffectOnIncomeNet_19265e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapInventoryLIFOReserveEffectOnIncomeNet_19265e" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AllowanceOnSalesReturns" xlink:label="loc_tomzAllowanceOnSalesReturns_9b5c51" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_tomzAllowanceOnSalesReturns_9b5c51" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract_2ec05e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_9fbab3" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract_2ec05e" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingAssetsAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingCapitalAbstract_2ec05e" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsReceivable_a43db6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsReceivable_a43db6" order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="loc_us-gaapIncreaseDecreaseInInventories_8cecf4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" xlink:to="loc_us-gaapIncreaseDecreaseInInventories_8cecf4" order="15" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidExpense" xlink:label="loc_us-gaapIncreaseDecreaseInPrepaidExpense_443906" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" xlink:to="loc_us-gaapIncreaseDecreaseInPrepaidExpense_443906" order="16" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDepositOtherAssets" xlink:label="loc_us-gaapIncreaseDecreaseInDepositOtherAssets_a0c218" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" xlink:to="loc_us-gaapIncreaseDecreaseInDepositOtherAssets_a0c218" order="17" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOtherCurrentAssets" xlink:label="loc_us-gaapIncreaseDecreaseInOtherCurrentAssets_3c4447" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" xlink:to="loc_us-gaapIncreaseDecreaseInOtherCurrentAssets_3c4447" order="18" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingAssetsAbstract_70977d" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="loc_us-gaapIncreaseDecreaseInAccountsPayable_47c1db" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" xlink:to="loc_us-gaapIncreaseDecreaseInAccountsPayable_47c1db" order="20" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:label="loc_us-gaapIncreaseDecreaseInAccruedLiabilities_57294d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" xlink:to="loc_us-gaapIncreaseDecreaseInAccruedLiabilities_57294d" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInDeferredRevenue" xlink:label="loc_us-gaapIncreaseDecreaseInDeferredRevenue_c70c65" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" xlink:to="loc_us-gaapIncreaseDecreaseInDeferredRevenue_c70c65" order="22" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingLeaseLiability" xlink:label="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability_121cd8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" xlink:to="loc_us-gaapIncreaseDecreaseInOperatingLeaseLiability_121cd8" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_34480b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncreaseDecreaseInOperatingLiabilitiesAbstract_e2d6f5" xlink:to="loc_us-gaapNetCashProvidedByUsedInOperatingActivities_34480b" order="24" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_6d3a2a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_6d3a2a" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="loc_us-gaapPaymentsToAcquireIntangibleAssets_1a129a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_6d3a2a" xlink:to="loc_us-gaapPaymentsToAcquireIntangibleAssets_1a129a" order="26" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment_4b8536" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_6d3a2a" xlink:to="loc_us-gaapPaymentsToAcquirePropertyPlantAndEquipment_4b8536" order="27" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_5e747c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInInvestingActivitiesAbstract_6d3a2a" xlink:to="loc_us-gaapNetCashProvidedByUsedInInvestingActivities_5e747c" order="28" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4877ff" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4877ff" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromConvertibleDebt" xlink:label="loc_us-gaapProceedsFromConvertibleDebt_df4006" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4877ff" xlink:to="loc_us-gaapProceedsFromConvertibleDebt_df4006" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="loc_us-gaapProceedsFromStockOptionsExercised_6bec54" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4877ff" xlink:to="loc_us-gaapProceedsFromStockOptionsExercised_6bec54" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_73280c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNetCashProvidedByUsedInFinancingActivitiesAbstract_4877ff" xlink:to="loc_us-gaapNetCashProvidedByUsedInFinancingActivities_73280c" order="32" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_0ad52f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_0ad52f" order="33" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_b351df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_b351df" order="34" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c4b16f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c4b16f" order="35" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="loc_us-gaapSupplementalCashFlowInformationAbstract_31c809" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementOfCashFlowsAbstract_94214d" xlink:to="loc_us-gaapSupplementalCashFlowInformationAbstract_31c809" order="36" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaidNet" xlink:label="loc_us-gaapInterestPaidNet_b15d5d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_31c809" xlink:to="loc_us-gaapInterestPaidNet_b15d5d" order="37" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NoncashInvestingAndFinancingItemsAbstract" xlink:label="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_939c09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSupplementalCashFlowInformationAbstract_31c809" xlink:to="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_939c09" order="38" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts" xlink:label="loc_tomzNonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts_2ca7e9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapNoncashInvestingAndFinancingItemsAbstract_939c09" xlink:to="loc_tomzNonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts_2ca7e9" order="39" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InsiderTradingArragements" xlink:title="170001 - Disclosure - Insider Trading Arragements">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InsiderTradingArragementsAbstract" xlink:label="loc_tomzInsiderTradingArragementsAbstract_2dde46" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_InsiderTradingArrLineItems" xlink:label="loc_ecdInsiderTradingArrLineItems_9583b8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrAdoptedFlag" xlink:label="loc_ecdRule10b51ArrAdoptedFlag_729103" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_9583b8" xlink:to="loc_ecdRule10b51ArrAdoptedFlag_729103" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_Rule10b51ArrTrmntdFlag" xlink:label="loc_ecdRule10b51ArrTrmntdFlag_627d1c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_9583b8" xlink:to="loc_ecdRule10b51ArrTrmntdFlag_627d1c" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrAdoptedFlag" xlink:label="loc_ecdNonRule10b51ArrAdoptedFlag_51508a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_9583b8" xlink:to="loc_ecdNonRule10b51ArrAdoptedFlag_51508a" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd#ecd_NonRule10b51ArrTrmntdFlag" xlink:label="loc_ecdNonRule10b51ArrTrmntdFlag_4de68c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecdInsiderTradingArrLineItems_9583b8" xlink:to="loc_ecdNonRule10b51ArrTrmntdFlag_4de68c" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/DescriptionOfBusiness" xlink:title="200000 - Disclosure - DESCRIPTION OF BUSINESS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="loc_us-gaapOrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_628ac3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock" xlink:label="loc_us-gaapBusinessDescriptionAndBasisOfPresentationTextBlock_af0ef4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_628ac3" xlink:to="loc_us-gaapBusinessDescriptionAndBasisOfPresentationTextBlock_af0ef4" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="290000 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_4224e9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaapSignificantAccountingPoliciesTextBlock_157fa7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_4224e9" xlink:to="loc_us-gaapSignificantAccountingPoliciesTextBlock_157fa7" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/INVENTORIES" xlink:title="340000 - Disclosure - INVENTORIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_66eff6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="loc_us-gaapInventoryDisclosureTextBlock_99a847" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_66eff6" xlink:to="loc_us-gaapInventoryDisclosureTextBlock_99a847" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDeposits" xlink:title="778000 - Disclosure - VENDOR DEPOSITS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_86244e" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_VendorDepositsTextBlock" xlink:label="loc_tomzVendorDepositsTextBlock_66a92f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_86244e" xlink:to="loc_tomzVendorDepositsTextBlock_66a92f" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipment" xlink:title="778001 - Disclosure - PROPERTY AND EQUIPMENT">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_519921" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentDisclosureTextBlock_758a8c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_519921" xlink:to="loc_us-gaapPropertyPlantAndEquipmentDisclosureTextBlock_758a8c" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssets" xlink:title="778002 - Disclosure - INTANGIBLE ASSETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_85f5b6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="loc_us-gaapIntangibleAssetsDisclosureTextBlock_93eade" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_85f5b6" xlink:to="loc_us-gaapIntangibleAssetsDisclosureTextBlock_93eade" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LEASES" xlink:title="842000 - Disclosure - LEASES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_b70323" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesOfLesseeDisclosureTextBlock" xlink:label="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_d965bb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b70323" xlink:to="loc_us-gaapLeasesOfLesseeDisclosureTextBlock_d965bb" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContract" xlink:title="842001 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_74760e" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CloudComputingServiceContractDisclosureTextBlock" xlink:label="loc_tomzCloudComputingServiceContractDisclosureTextBlock_6ba2a9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_74760e" xlink:to="loc_tomzCloudComputingServiceContractDisclosureTextBlock_6ba2a9" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebt" xlink:title="842002 - Disclosure - CONVERTIBLE DEBT">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebtAbstract" xlink:label="loc_tomzConvertibleDebtAbstract_219490" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="loc_us-gaapDebtDisclosureTextBlock_93dd01" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_219490" xlink:to="loc_us-gaapDebtDisclosureTextBlock_93dd01" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquity" xlink:title="842003 - Disclosure - SHAREHOLDERS EQUITY">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_0397b1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="loc_us-gaapStockholdersEquityNoteDisclosureTextBlock_2f73e6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_0397b1" xlink:to="loc_us-gaapStockholdersEquityNoteDisclosureTextBlock_2f73e6" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingencies" xlink:title="842004 - Disclosure - COMMITMENTS AND CONTINGENCIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_eb33fe" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock_a73453" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapCommitmentsAndContingenciesDisclosureAbstract_eb33fe" xlink:to="loc_us-gaapCommitmentsAndContingenciesDisclosureTextBlock_a73453" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreements" xlink:title="842005 - Disclosure - CONTRACTS AND AGREEMENTS">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ContractsAndAgreementsAbstract" xlink:label="loc_tomzContractsAndAgreementsAbstract_2e0084" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ContractsAndAgreementsTextBlock" xlink:label="loc_tomzContractsAndAgreementsTextBlock_4f48d8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzContractsAndAgreementsAbstract_2e0084" xlink:to="loc_tomzContractsAndAgreementsTextBlock_4f48d8" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:title="842006 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_5fc6ad" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock" xlink:label="loc_us-gaapAccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_c24513" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_5fc6ad" xlink:to="loc_us-gaapAccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock_c24513" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarranty" xlink:title="842007 - Disclosure - ACCRUED WARRANTY">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_703da3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductWarrantyDisclosureTextBlock" xlink:label="loc_us-gaapProductWarrantyDisclosureTextBlock_de86cb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_703da3" xlink:to="loc_us-gaapProductWarrantyDisclosureTextBlock_de86cb" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="995000 - Disclosure - INCOME TAXES">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_a479bd" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="loc_us-gaapIncomeTaxDisclosureTextBlock_96bdf9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_a479bd" xlink:to="loc_us-gaapIncomeTaxDisclosureTextBlock_96bdf9" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="995001 - Disclosure - CUSTOMER CONCENTRATION">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_009bf5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskDisclosureTextBlock" xlink:label="loc_us-gaapConcentrationRiskDisclosureTextBlock_e46261" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_009bf5" xlink:to="loc_us-gaapConcentrationRiskDisclosureTextBlock_e46261" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SegmentReporting" xlink:title="995002 - Disclosure - SEGMENT REPORTING">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="loc_us-gaapSegmentReportingAbstract_9d43b2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="loc_us-gaapSegmentReportingDisclosureTextBlock_b0f4a7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentReportingAbstract_9d43b2" xlink:to="loc_us-gaapSegmentReportingDisclosureTextBlock_b0f4a7" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/EmployeeRetentionCredits" xlink:title="995003 - Disclosure - EMPLOYEE RETENTION CREDITS">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EmployeeRetentionCreditsAbstract" xlink:label="loc_tomzEmployeeRetentionCreditsAbstract_3ec9dd" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EmployeeRetentionCreditsDisclosureTextBlock" xlink:label="loc_tomzEmployeeRetentionCreditsDisclosureTextBlock_2bb3de" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzEmployeeRetentionCreditsAbstract_3ec9dd" xlink:to="loc_tomzEmployeeRetentionCreditsDisclosureTextBlock_2bb3de" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="995004 - Disclosure - SUBSEQUENT EVENTS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_0eaa28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsTextBlock" xlink:label="loc_us-gaapSubsequentEventsTextBlock_cbfd2a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_0eaa28" xlink:to="loc_us-gaapSubsequentEventsTextBlock_cbfd2a" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="995005 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_47e8ec" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock" xlink:label="loc_us-gaapBasisOfPresentationAndSignificantAccountingPoliciesTextBlock_3ba8e3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapBasisOfPresentationAndSignificantAccountingPoliciesTextBlock_3ba8e3" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="loc_us-gaapConsolidationPolicyTextBlock_fb8525" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapConsolidationPolicyTextBlock_fb8525" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="loc_us-gaapPriorPeriodReclassificationAdjustmentDescription_85d30c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapPriorPeriodReclassificationAdjustmentDescription_85d30c" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates" xlink:label="loc_us-gaapUseOfEstimates_def45b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapUseOfEstimates_def45b" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementPolicyPolicyTextBlock" xlink:label="loc_us-gaapFairValueMeasurementPolicyPolicyTextBlock_6ba7b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapFairValueMeasurementPolicyPolicyTextBlock_6ba7b5" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_f271ca" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapCashAndCashEquivalentsPolicyTextBlock_f271ca" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="loc_us-gaapReceivablesPolicyTextBlock_b9294d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapReceivablesPolicyTextBlock_b9294d" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="loc_us-gaapInventoryPolicyTextBlock_453b4e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapInventoryPolicyTextBlock_453b4e" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_c7d7f7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapPropertyPlantAndEquipmentPolicyTextBlock_c7d7f7" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeLeasesPolicyTextBlock" xlink:label="loc_us-gaapLesseeLeasesPolicyTextBlock_9d79fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapLesseeLeasesPolicyTextBlock_9d79fa" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsPayablePolicyTextBlock" xlink:label="loc_tomzAccountsPayablePolicyTextBlock_819520" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_tomzAccountsPayablePolicyTextBlock_819520" order="11" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyPolicy" xlink:label="loc_us-gaapExtendedProductWarrantyPolicy_6fddfd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapExtendedProductWarrantyPolicy_6fddfd" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="loc_us-gaapIncomeTaxPolicyTextBlock_cb7f40" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapIncomeTaxPolicyTextBlock_cb7f40" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="loc_us-gaapEarningsPerSharePolicyTextBlock_82e79c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapEarningsPerSharePolicyTextBlock_82e79c" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="loc_us-gaapRevenueRecognitionPolicyTextBlock_40aabd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapRevenueRecognitionPolicyTextBlock_40aabd" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_3fc8a5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapShareBasedCompensationOptionAndIncentivePlansPolicy_3fc8a5" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="loc_us-gaapConcentrationRiskCreditRisk_675aed" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapConcentrationRiskCreditRisk_675aed" order="17" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock" xlink:label="loc_tomzLonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock_a1c1f9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_tomzLonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock_a1c1f9" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdvertisingCostsPolicyTextBlock" xlink:label="loc_us-gaapAdvertisingCostsPolicyTextBlock_814ac2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapAdvertisingCostsPolicyTextBlock_814ac2" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpensePolicy" xlink:label="loc_us-gaapResearchAndDevelopmentExpensePolicy_741059" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapResearchAndDevelopmentExpensePolicy_741059" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingPolicyPolicyTextBlock" xlink:label="loc_us-gaapSegmentReportingPolicyPolicyTextBlock_261fdb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapSegmentReportingPolicyPolicyTextBlock_261fdb" order="21" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GoingConcernPolicyTextBlock" xlink:label="loc_tomzGoingConcernPolicyTextBlock_dc1d22" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_tomzGoingConcernPolicyTextBlock_dc1d22" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_6e56df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_47e8ec" xlink:to="loc_us-gaapNewAccountingPronouncementsPolicyPolicyTextBlock_6e56df" order="23" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="995006 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_5b66bf" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock" xlink:label="loc_tomzScheduleOfAllowanceForCreditLossesTableTextBlock_f3d76e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_5b66bf" xlink:to="loc_tomzScheduleOfAllowanceForCreditLossesTableTextBlock_f3d76e" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="loc_us-gaapScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_44b35e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_5b66bf" xlink:to="loc_us-gaapScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_44b35e" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:label="loc_us-gaapScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_5ccd4b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_5b66bf" xlink:to="loc_us-gaapScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_5ccd4b" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="loc_us-gaapDisaggregationOfRevenueTableTextBlock_f49d78" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_5b66bf" xlink:to="loc_us-gaapDisaggregationOfRevenueTableTextBlock_f49d78" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="995007 - Disclosure - INVENTORIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_9796b1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:label="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_e37a04" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_9796b1" xlink:to="loc_us-gaapScheduleOfInventoryCurrentTableTextBlock_e37a04" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="995008 - Disclosure - PROPERTY AND EQUIPMENT (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_98c55c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="loc_us-gaapPropertyPlantAndEquipmentTextBlock_265c6f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_98c55c" xlink:to="loc_us-gaapPropertyPlantAndEquipmentTextBlock_265c6f" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="995009 - Disclosure - INTANGIBLE ASSETS (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_9891d0" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_71570b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_9891d0" xlink:to="loc_us-gaapScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_71570b" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock" xlink:label="loc_us-gaapScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock_0164e1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_9891d0" xlink:to="loc_us-gaapScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock_0164e1" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="loc_us-gaapScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_733dc6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_9891d0" xlink:to="loc_us-gaapScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_733dc6" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="995010 - Disclosure - LEASES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_122c6d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock" xlink:label="loc_us-gaapOperatingLeasesOfLesseeDisclosureTextBlock_ab3ef8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_122c6d" xlink:to="loc_us-gaapOperatingLeasesOfLesseeDisclosureTextBlock_ab3ef8" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="loc_us-gaapLeaseCostTableTextBlock_c75510" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_122c6d" xlink:to="loc_us-gaapLeaseCostTableTextBlock_c75510" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock" xlink:label="loc_tomzScheduleOfOtherInformationRelatedToLeasesTableTextBlock_0f25bc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_122c6d" xlink:to="loc_tomzScheduleOfOtherInformationRelatedToLeasesTableTextBlock_0f25bc" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock" xlink:label="loc_tomzSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_99bdc1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_122c6d" xlink:to="loc_tomzSupplementalCashFlowInformationRelatedToLeasesTableTextBlock_99bdc1" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityMaturityTableTextBlock_4c8713" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_122c6d" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityMaturityTableTextBlock_4c8713" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtTables" xlink:title="995011 - Disclosure - CONVERTIBLE DEBT (Tables)">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebtAbstract" xlink:label="loc_tomzConvertibleDebtAbstract_81c53d" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleDebtTableTextBlock" xlink:label="loc_us-gaapConvertibleDebtTableTextBlock_af7c86" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_81c53d" xlink:to="loc_us-gaapConvertibleDebtTableTextBlock_af7c86" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityTables" xlink:title="995012 - Disclosure - SHAREHOLDERS EQUITY (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_de1e41" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock" xlink:label="loc_us-gaapScheduleOfStockOptionsRollForwardTableTextBlock_e84277" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_de1e41" xlink:to="loc_us-gaapScheduleOfStockOptionsRollForwardTableTextBlock_e84277" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_c3896f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_de1e41" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock_c3896f" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock" xlink:label="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_6de0b9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_de1e41" xlink:to="loc_us-gaapScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock_6de0b9" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock" xlink:label="loc_tomzScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock_875792" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_de1e41" xlink:to="loc_tomzScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock_875792" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="995013 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_8ae563" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_f31c41" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_8ae563" xlink:to="loc_us-gaapScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_f31c41" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="995014 - Disclosure - ACCRUED WARRANTY (Tables)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_384c7a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:label="loc_us-gaapScheduleOfProductWarrantyLiabilityTableTextBlock_4a8f66" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_384c7a" xlink:to="loc_us-gaapScheduleOfProductWarrantyLiabilityTableTextBlock_4a8f66" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="995015 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_7b5203" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent_688340" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_7b5203" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivableCurrent_688340" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsAndFinancingReceivableForCreditLoss" xlink:label="loc_tomzAccountsAndFinancingReceivableForCreditLoss_4384fa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_7b5203" xlink:to="loc_tomzAccountsAndFinancingReceivableForCreditLoss_4384fa" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss" xlink:label="loc_us-gaapAccountsAndFinancingReceivableAllowanceForCreditLoss_5880d1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_7b5203" xlink:to="loc_us-gaapAccountsAndFinancingReceivableAllowanceForCreditLoss_5880d1" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_9bd6e4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_7b5203" xlink:to="loc_us-gaapAllowanceForDoubtfulAccountsReceivable_9bd6e4" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="995016 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_3c3247" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_140ac0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapNetIncomeLoss_140ac0" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt" xlink:label="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt_13436d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt_13436d" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InterestOnConvertibleDebtNet" xlink:label="loc_tomzInterestOnConvertibleDebtNet_021b39" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_tomzInterestOnConvertibleDebtNet_021b39" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NetLossAttributableToCommonShareholders" xlink:label="loc_tomzNetLossAttributableToCommonShareholders_2e1143" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_tomzNetLossAttributableToCommonShareholders_2e1143" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract" xlink:label="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_545912" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapEarningsPerShareBasicOtherDisclosuresAbstract_545912" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesIssuedBasic_0ccbf2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesIssuedBasic_0ccbf2" order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_5a26ca" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_5a26ca" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract" xlink:label="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_a9a01f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasicAbstract_a9a01f" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasicEarningsPerShareProForma" xlink:label="loc_us-gaapBasicEarningsPerShareProForma_0a0863" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapBasicEarningsPerShareProForma_0a0863" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DilutedEarningsPerShareProForma" xlink:label="loc_us-gaapDilutedEarningsPerShareProForma_6bbf5e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_3c3247" xlink:to="loc_us-gaapDilutedEarningsPerShareProForma_6bbf5e" order="10" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="995017 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_13ca60" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_b472f1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_13ca60" xlink:to="loc_us-gaapStatementTable_b472f1" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_891116" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b472f1" xlink:to="loc_us-gaapStatementLineItems_891116" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_255ba3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_b472f1" xlink:to="loc_us-gaapStatementClassOfStockAxis_255ba3" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_5bc18a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_255ba3" xlink:to="loc_us-gaapClassOfStockDomain_5bc18a" order="1010" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebenturesMember" xlink:label="loc_tomzConvertibleDebenturesMember_06d41c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_5bc18a" xlink:to="loc_tomzConvertibleDebenturesMember_06d41c" order="1011" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_0bf275" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_5bc18a" xlink:to="loc_tomzStockOptionsMember_0bf275" order="1012" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockWarrantsMember" xlink:label="loc_tomzStockWarrantsMember_339af3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_5bc18a" xlink:to="loc_tomzStockWarrantsMember_339af3" order="1013" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PreferredStocksMember" xlink:label="loc_tomzPreferredStocksMember_462ce3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_5bc18a" xlink:to="loc_tomzPreferredStocksMember_462ce3" order="1014" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss_f79bc3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_891116" xlink:to="loc_us-gaapNetIncomeLoss_f79bc3" order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesIssuedBasic_6f423f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_891116" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesIssuedBasic_6f423f" order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_7d53b0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_891116" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding_7d53b0" order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasicEarningsPerShareProForma" xlink:label="loc_us-gaapBasicEarningsPerShareProForma_5bc168" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_891116" xlink:to="loc_us-gaapBasicEarningsPerShareProForma_5bc168" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DilutedEarningsPerShareProForma" xlink:label="loc_us-gaapDilutedEarningsPerShareProForma_f2e745" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_891116" xlink:to="loc_us-gaapDilutedEarningsPerShareProForma_f2e745" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_cde3d2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_891116" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_cde3d2" order="6" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" xlink:title="995018 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_889ac3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_e17739" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_889ac3" xlink:to="loc_us-gaapStatementTable_e17739" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_8f08df" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e17739" xlink:to="loc_us-gaapStatementLineItems_8f08df" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_5b40c3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e17739" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_5b40c3" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_120b8c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_5b40c3" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_120b8c" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_8a7451" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e17739" xlink:to="loc_us-gaapStatementClassOfStockAxis_8a7451" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10ceea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_8a7451" xlink:to="loc_us-gaapClassOfStockDomain_10ceea" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="loc_us-gaapShortTermDebtTypeAxis_23e2ab" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_e17739" xlink:to="loc_us-gaapShortTermDebtTypeAxis_23e2ab" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="loc_us-gaapShortTermDebtTypeDomain_d28831" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShortTermDebtTypeAxis_23e2ab" xlink:to="loc_us-gaapShortTermDebtTypeDomain_d28831" order="1050" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_4ed68f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_10ceea" xlink:to="loc_tomzStockOptionsMember_4ed68f" order="1051" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_aeeee7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_120b8c" xlink:to="loc_tomzWarrantsMember_aeeee7" order="1052" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleDebtMember" xlink:label="loc_us-gaapConvertibleDebtMember_45be3d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShortTermDebtTypeDomain_d28831" xlink:to="loc_us-gaapConvertibleDebtMember_45be3d" order="1053" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_tomzAntidilutiveExcludedFromComputationOfEarningsPerShareAmount_e3ef7d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_8f08df" xlink:to="loc_tomzAntidilutiveExcludedFromComputationOfEarningsPerShareAmount_e3ef7d" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" xlink:title="995019 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_5d52ec" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_3a9633" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_5d52ec" xlink:to="loc_us-gaapStatementTable_3a9633" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_611e53" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_3a9633" xlink:to="loc_us-gaapStatementLineItems_611e53" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis_fafb4c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_3a9633" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis_fafb4c" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_1766bb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis_fafb4c" xlink:to="loc_us-gaapSegmentDomain_1766bb" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="loc_us-gaapIncomeTaxAuthorityNameAxis_aec2af" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_3a9633" xlink:to="loc_us-gaapIncomeTaxAuthorityNameAxis_aec2af" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaapIncomeTaxAuthorityNameDomain_c71e62" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityNameAxis_aec2af" xlink:to="loc_us-gaapIncomeTaxAuthorityNameDomain_c71e62" order="1040" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SteraMistPRoductMember" xlink:label="loc_tomzSteraMistPRoductMember_9d0383" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_1766bb" xlink:to="loc_tomzSteraMistPRoductMember_9d0383" order="1041" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ServiceAndTrainingMember" xlink:label="loc_tomzServiceAndTrainingMember_d332ae" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_1766bb" xlink:to="loc_tomzServiceAndTrainingMember_d332ae" order="1042" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProductAndServiceRevenueMember" xlink:label="loc_tomzProductAndServiceRevenueMember_1cdb78" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSegmentDomain_1766bb" xlink:to="loc_tomzProductAndServiceRevenueMember_1cdb78" order="1043" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InternationalMember" xlink:label="loc_tomzInternationalMember_a1a03f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityNameDomain_c71e62" xlink:to="loc_tomzInternationalMember_a1a03f" order="1044" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GeographicRegionMember" xlink:label="loc_tomzGeographicRegionMember_82b677" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityNameDomain_c71e62" xlink:to="loc_tomzGeographicRegionMember_82b677" order="1045" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_UnitedStatesMember" xlink:label="loc_tomzUnitedStatesMember_a86cba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxAuthorityNameDomain_c71e62" xlink:to="loc_tomzUnitedStatesMember_a86cba" order="1046" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesTypeLeaseRevenue" xlink:label="loc_us-gaapSalesTypeLeaseRevenue_8329c2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_611e53" xlink:to="loc_us-gaapSalesTypeLeaseRevenue_8329c2" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="995020 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="loc_us-gaapAccountingPoliciesAbstract_2322cf" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_4be6fd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccountingPoliciesAbstract_2322cf" xlink:to="loc_us-gaapStatementTable_4be6fd" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_c29828" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_us-gaapStatementLineItems_c29828" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_66016e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_srtMajorCustomersAxis_66016e" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_6471f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_66016e" xlink:to="loc_srtNameOfMajorCustomerDomain_6471f6" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="loc_us-gaapExtinguishmentOfDebtAxis_243fd8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_us-gaapExtinguishmentOfDebtAxis_243fd8" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain_6b7ace" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis_243fd8" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain_6b7ace" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis_61f78c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_us-gaapIncomeStatementLocationAxis_61f78c" order="1060" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_8491d2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationAxis_61f78c" xlink:to="loc_us-gaapIncomeStatementLocationDomain_8491d2" order="1060" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_0b6d77" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_us-gaapStatementClassOfStockAxis_0b6d77" order="1070" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_cb59f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_0b6d77" xlink:to="loc_us-gaapClassOfStockDomain_cb59f6" order="1070" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_1fc398" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_1fc398" order="1080" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_ee755f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_1fc398" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_ee755f" order="1080" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_291d09" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4be6fd" xlink:to="loc_us-gaapPlanNameAxis_291d09" order="1100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_3326d9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_291d09" xlink:to="loc_us-gaapPlanNameDomain_3326d9" order="1100" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebenturesMember" xlink:label="loc_tomzConvertibleDebenturesMember_928110" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_cb59f6" xlink:to="loc_tomzConvertibleDebenturesMember_928110" order="1101" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember_29540d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_cb59f6" xlink:to="loc_tomzStockOptionsMember_29540d" order="1102" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_ba21e6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_ee755f" xlink:to="loc_tomzWarrantsMember_ba21e6" order="1103" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OneVendorsMember" xlink:label="loc_tomzOneVendorsMember_d19154" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_6471f6" xlink:to="loc_tomzOneVendorsMember_d19154" order="1104" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableMember" xlink:label="loc_us-gaapAccountsPayableMember_dba3e2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtinguishmentOfDebtTypeDomain_6b7ace" xlink:to="loc_us-gaapAccountsPayableMember_dba3e2" order="1105" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TwoVendorsMember" xlink:label="loc_tomzTwoVendorsMember_9f2190" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_6471f6" xlink:to="loc_tomzTwoVendorsMember_9f2190" order="1106" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="loc_us-gaapCostOfSalesMember_4b80b7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeStatementLocationDomain_8491d2" xlink:to="loc_us-gaapCostOfSalesMember_4b80b7" order="1107" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PreferredAStockMember" xlink:label="loc_tomzPreferredAStockMember_725f16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_cb59f6" xlink:to="loc_tomzPreferredAStockMember_725f16" order="1108" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="loc_tomzEquityIncentivePlanOneMember_0c7fb9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_3326d9" xlink:to="loc_tomzEquityIncentivePlanOneMember_0c7fb9" order="1109" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:label="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasic_0b9c32" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasic_0b9c32" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInContinuingOperations" xlink:label="loc_us-gaapNetCashProvidedByUsedInContinuingOperations_8220f3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapNetCashProvidedByUsedInContinuingOperations_8220f3" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue_25054a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue_25054a" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RetainedEarningAccumulatedDeficit" xlink:label="loc_tomzRetainedEarningAccumulatedDeficit_c4472a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzRetainedEarningAccumulatedDeficit_c4472a" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RecognizeRevenue" xlink:label="loc_tomzRecognizeRevenue_7c23f5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzRecognizeRevenue_7c23f5" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SalesReturnsAllowanceDuringPeriod" xlink:label="loc_tomzSalesReturnsAllowanceDuringPeriod_5de03e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzSalesReturnsAllowanceDuringPeriod_5de03e" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryValuationReserve" xlink:label="loc_tomzInventoryValuationReserve_6a5a34" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzInventoryValuationReserve_6a5a34" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_2bd8f2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves_2bd8f2" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaapAdvertisingExpense_431e49" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapAdvertisingExpense_431e49" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherResearchAndDevelopmentExpense" xlink:label="loc_us-gaapOtherResearchAndDevelopmentExpense_162e3d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapOtherResearchAndDevelopmentExpense_162e3d" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_1dc563" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_1dc563" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense_3136f4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense_3136f4" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConcentrationRiskPercentage" xlink:label="loc_tomzConcentrationRiskPercentage_ea8e10" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzConcentrationRiskPercentage_ea8e10" order="13" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConcentrationRiskInPercentage" xlink:label="loc_tomzConcentrationRiskInPercentage_dd8803" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzConcentrationRiskInPercentage_dd8803" order="14" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PotentiallyDilutiveSecurities" xlink:label="loc_tomzPotentiallyDilutiveSecurities_7f5056" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_tomzPotentiallyDilutiveSecurities_7f5056" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding_418861" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapCommonStockSharesOutstanding_418861" order="16" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized_353b68" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_c29828" xlink:to="loc_us-gaapCommonStockSharesAuthorized_353b68" order="17" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="995021 - Disclosure - INVENTORIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryDisclosureAbstract" xlink:label="loc_us-gaapInventoryDisclosureAbstract_c8199f" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryFinishedGoods" xlink:label="loc_us-gaapInventoryFinishedGoods_5f488a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_c8199f" xlink:to="loc_us-gaapInventoryFinishedGoods_5f488a" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryRawMaterials" xlink:label="loc_us-gaapInventoryRawMaterials_405c7c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_c8199f" xlink:to="loc_us-gaapInventoryRawMaterials_405c7c" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryValuationReserves" xlink:label="loc_us-gaapInventoryValuationReserves_efea6f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_c8199f" xlink:to="loc_us-gaapInventoryValuationReserves_efea6f" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InventoryNet" xlink:label="loc_us-gaapInventoryNet_d9ccbf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapInventoryDisclosureAbstract_c8199f" xlink:to="loc_us-gaapInventoryNet_d9ccbf" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="995022 - Disclosure - VENDOR DEPOSITS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:label="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_eff6f7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Deposits" xlink:label="loc_us-gaapDeposits_24aa66" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapExtraordinaryAndUnusualItemsAbstract_eff6f7" xlink:to="loc_us-gaapDeposits_24aa66" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="995023 - Disclosure - PROPERTY AND EQUIPMENT (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FurnitureAndFixturesGross" xlink:label="loc_us-gaapFurnitureAndFixturesGross_08d22e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapFurnitureAndFixturesGross_08d22e" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquipmentsGross" xlink:label="loc_tomzEquipmentsGross_602255" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_tomzEquipmentsGross_602255" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles" xlink:label="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_187c36" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapPublicUtilitiesPropertyPlantAndEquipmentVehicles_187c36" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CapitalizedComputerSoftwareGross" xlink:label="loc_us-gaapCapitalizedComputerSoftwareGross_9fa1f3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapCapitalizedComputerSoftwareGross_9fa1f3" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeaseholdImprovementsGross" xlink:label="loc_us-gaapLeaseholdImprovementsGross_8e7ed5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapLeaseholdImprovementsGross_8e7ed5" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConstructionInProgressGross" xlink:label="loc_us-gaapConstructionInProgressGross_80083d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapConstructionInProgressGross_80083d" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="loc_us-gaapPropertyPlantAndEquipmentGross_768d20" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapPropertyPlantAndEquipmentGross_768d20" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_222002" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapAccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_222002" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentOtherNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentOtherNet_f3503b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_19445a" xlink:to="loc_us-gaapPropertyPlantAndEquipmentOtherNet_f3503b" order="9" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="995024 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentAbstract" xlink:label="loc_us-gaapPropertyPlantAndEquipmentAbstract_3c908c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation" xlink:label="loc_us-gaapDepreciation_265070" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_3c908c" xlink:to="loc_us-gaapDepreciation_265070" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AmortizationOfTenantImprovementAllowance" xlink:label="loc_tomzAmortizationOfTenantImprovementAllowance_d2b7d0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPropertyPlantAndEquipmentAbstract_3c908c" xlink:to="loc_tomzAmortizationOfTenantImprovementAllowance_d2b7d0" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="995025 - Disclosure - INTANGIBLE ASSETS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_e096a9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_af8d56" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_e096a9" xlink:to="loc_us-gaapStatementTable_af8d56" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_59da53" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_af8d56" xlink:to="loc_us-gaapStatementLineItems_59da53" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_efe630" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_af8d56" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_efe630" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_002315" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_efe630" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_002315" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntellectualPropertyMember" xlink:label="loc_us-gaapIntellectualPropertyMember_18ed40" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_002315" xlink:to="loc_us-gaapIntellectualPropertyMember_18ed40" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross_15a926" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_59da53" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross_15a926" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_7bd8a4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_59da53" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization_7bd8a4" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet_dee75a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_59da53" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsNet_dee75a" order="3" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="995026 - Disclosure - INTANGIBLE ASSETS (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_2eab70" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IndefiniteLivedTrademarks" xlink:label="loc_us-gaapIndefiniteLivedTrademarks_e73fe2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_2eab70" xlink:to="loc_us-gaapIndefiniteLivedTrademarks_e73fe2" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_d50a90" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_2eab70" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill_d50a90" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="995027 - Disclosure - INTANGIBLE ASSETS (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_f5647a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract_f5647a" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_4793fb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_4793fb" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_15f726" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_15f726" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree_93042e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearThree_93042e" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour_ede05e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFour_ede05e" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive_390bf6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseYearFive_390bf6" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_883c7b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_883c7b" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_FiniteLivedIntangibleAssetNet" xlink:label="loc_tomzFiniteLivedIntangibleAssetNet_69016a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_810354" xlink:to="loc_tomzFiniteLivedIntangibleAssetNet_69016a" order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="995028 - Disclosure - INTANGIBLE ASSETS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_c6bc7c" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="loc_us-gaapAmortizationOfIntangibleAssets_331c94" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapGoodwillAndIntangibleAssetsDisclosureAbstract_c6bc7c" xlink:to="loc_us-gaapAmortizationOfIntangibleAssets_331c94" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="995029 - Disclosure - LEASES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_b5e362" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset_b346ac" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b5e362" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset_b346ac" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAbstract" xlink:label="loc_us-gaapLiabilitiesAbstract_4722fb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b5e362" xlink:to="loc_us-gaapLiabilitiesAbstract_4722fb" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_4af3a9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b5e362" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_4af3a9" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_66e2cd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b5e362" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_66e2cd" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiability" xlink:label="loc_us-gaapOperatingLeaseLiability_023d03" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b5e362" xlink:to="loc_us-gaapOperatingLeaseLiability_023d03" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="995030 - Disclosure - LEASES (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_0699c3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseExpense" xlink:label="loc_us-gaapOperatingLeaseExpense_2ced21" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_0699c3" xlink:to="loc_us-gaapOperatingLeaseExpense_2ced21" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="995031 - Disclosure - LEASES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_10b688" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm" xlink:label="loc_tomzOperatingLeaseWeightedAveragesRemainingLeaseTerm_d76860" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_10b688" xlink:to="loc_tomzOperatingLeaseWeightedAveragesRemainingLeaseTerm_d76860" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseDiscountRate" xlink:label="loc_us-gaapLesseeOperatingLeaseDiscountRate_af4647" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_10b688" xlink:to="loc_us-gaapLesseeOperatingLeaseDiscountRate_af4647" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="995032 - Disclosure - LEASES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_b4f2f9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm" xlink:label="loc_us-gaapOperatingLeaseInitialDirectCostExpenseOverTerm_6ce771" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_b4f2f9" xlink:to="loc_us-gaapOperatingLeaseInitialDirectCostExpenseOverTerm_6ce771" order="1" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="995033 - Disclosure - LEASES (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_fec235" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_447174" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_447174" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_9a8e2a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearTwo_9a8e2a" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_1add16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearThree_1add16" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_baaecc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFour_baaecc" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_e89e6d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDueYearFive_e89e6d" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_aecbb0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityPaymentsDue_aecbb0" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_ddd26f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapLesseeOperatingLeaseLiabilityUndiscountedExcessAmount_ddd26f" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CapitalLeaseObligationsCurrent" xlink:label="loc_us-gaapCapitalLeaseObligationsCurrent_76c70b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapCapitalLeaseObligationsCurrent_76c70b" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent_fbdf0a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent_fbdf0a" order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent_861ae1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_fec235" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent_861ae1" order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="995034 - Disclosure - LEASES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LeasesAbstract" xlink:label="loc_us-gaapLeasesAbstract_791bf6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TermLease" xlink:label="loc_tomzTermLease_b8b8ec" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_791bf6" xlink:to="loc_tomzTermLease_b8b8ec" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AreaOfLand" xlink:label="loc_us-gaapAreaOfLand_c5cf8f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_791bf6" xlink:to="loc_us-gaapAreaOfLand_c5cf8f" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="loc_us-gaapOperatingLeasesRentExpenseNet_a73536" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_791bf6" xlink:to="loc_us-gaapOperatingLeasesRentExpenseNet_a73536" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MaximumIncreasesRentPercentage" xlink:label="loc_tomzMaximumIncreasesRentPercentage_a7a9f8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_791bf6" xlink:to="loc_tomzMaximumIncreasesRentPercentage_a7a9f8" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WorkersCompensationDiscountPercent" xlink:label="loc_us-gaapWorkersCompensationDiscountPercent_1767ce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_791bf6" xlink:to="loc_us-gaapWorkersCompensationDiscountPercent_1767ce" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForProceedsFromTenantAllowance" xlink:label="loc_us-gaapPaymentsForProceedsFromTenantAllowance_8da00f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapLeasesAbstract_791bf6" xlink:to="loc_us-gaapPaymentsForProceedsFromTenantAllowance_8da00f" order="6" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="995035 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_80b45d" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProceedsFromServiceContractOfReceivables" xlink:label="loc_tomzProceedsFromServiceContractOfReceivables_16fd71" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_80b45d" xlink:to="loc_tomzProceedsFromServiceContractOfReceivables_16fd71" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssets" xlink:label="loc_us-gaapPrepaidExpenseAndOtherAssets_72b29c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_80b45d" xlink:to="loc_us-gaapPrepaidExpenseAndOtherAssets_72b29c" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AnnualPaymentsOnContractExpired" xlink:label="loc_tomzAnnualPaymentsOnContractExpired_ad855f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_80b45d" xlink:to="loc_tomzAnnualPaymentsOnContractExpired_ad855f" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSoldAmortization" xlink:label="loc_us-gaapCostOfGoodsAndServicesSoldAmortization_38393e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_80b45d" xlink:to="loc_us-gaapCostOfGoodsAndServicesSoldAmortization_38393e" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtDetails" xlink:title="995036 - Disclosure - CONVERTIBLE DEBT (Details)">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebtAbstract" xlink:label="loc_tomzConvertibleDebtAbstract_98e7f9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract" xlink:label="loc_us-gaapConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract_82b34d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_98e7f9" xlink:to="loc_us-gaapConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract_82b34d" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleNotesPayableGross" xlink:label="loc_tomzConvertibleNotesPayableGross_7f2181" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract_82b34d" xlink:to="loc_tomzConvertibleNotesPayableGross_7f2181" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet" xlink:label="loc_us-gaapDebtIssuanceCostsLineOfCreditArrangementsNet_1d2a02" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_98e7f9" xlink:to="loc_us-gaapDebtIssuanceCostsLineOfCreditArrangementsNet_1d2a02" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GroundLeasesAccumulatedAmortization" xlink:label="loc_us-gaapGroundLeasesAccumulatedAmortization_36b0d3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_98e7f9" xlink:to="loc_us-gaapGroundLeasesAccumulatedAmortization_36b0d3" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleNotesPayable" xlink:label="loc_us-gaapConvertibleNotesPayable_769619" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_98e7f9" xlink:to="loc_us-gaapConvertibleNotesPayable_769619" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtDetailsNarrative" xlink:title="995037 - Disclosure - CONVERTIBLE DEBT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebtAbstract" xlink:label="loc_tomzConvertibleDebtAbstract_0c8631" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_c17837" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzConvertibleDebtAbstract_0c8631" xlink:to="loc_us-gaapStatementTable_c17837" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_ca116a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_c17837" xlink:to="loc_us-gaapStatementLineItems_ca116a" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis_1c116e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_c17837" xlink:to="loc_us-gaapAwardDateAxis_1c116e" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_31ea7a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateAxis_1c116e" xlink:to="loc_us-gaapAwardDateDomain_31ea7a" order="1020" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_JuneTwoThousandTwentyFiveMember" xlink:label="loc_tomzJuneTwoThousandTwentyFiveMember_c5aec6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_31ea7a" xlink:to="loc_tomzJuneTwoThousandTwentyFiveMember_c5aec6" order="1021" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OctoberandNovemberTwoThousandTwentyThreeMember" xlink:label="loc_tomzOctoberandNovemberTwoThousandTwentyThreeMember_d7e6b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_31ea7a" xlink:to="loc_tomzOctoberandNovemberTwoThousandTwentyThreeMember_d7e6b5" order="1022" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="loc_us-gaapAmortizationOfFinancingCosts_2d945c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_us-gaapAmortizationOfFinancingCosts_2d945c" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProceedsFromConvertiblePromissoryNotesIssuance" xlink:label="loc_tomzProceedsFromConvertiblePromissoryNotesIssuance_73a22d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_tomzProceedsFromConvertiblePromissoryNotesIssuance_73a22d" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesConversionOfConvertibleSecurities_a8f87a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesConversionOfConvertibleSecurities_a8f87a" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DescriptionOfConvertibleNote" xlink:label="loc_tomzDescriptionOfConvertibleNote_8d2d8e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_tomzDescriptionOfConvertibleNote_8d2d8e" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="loc_us-gaapInvestmentOwnedBalancePrincipalAmount_952fd5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_us-gaapInvestmentOwnedBalancePrincipalAmount_952fd5" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateDuringPeriod" xlink:label="loc_us-gaapDebtInstrumentInterestRateDuringPeriod_29cdf7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_us-gaapDebtInstrumentInterestRateDuringPeriod_29cdf7" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpenseDebt" xlink:label="loc_us-gaapInterestExpenseDebt_8be5cd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_us-gaapInterestExpenseDebt_8be5cd" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="loc_us-gaapSharesIssuedPricePerShare_292d3e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_us-gaapSharesIssuedPricePerShare_292d3e" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AmortizationOfFinancingCostsAdditions" xlink:label="loc_tomzAmortizationOfFinancingCostsAdditions_c92369" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca116a" xlink:to="loc_tomzAmortizationOfFinancingCostsAdditions_c92369" order="9" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="995038 - Disclosure - SHAREHOLDERS EQUITY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_5c2ead" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_52655b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_5c2ead" xlink:to="loc_us-gaapStatementTable_52655b" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_e5b2af" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_52655b" xlink:to="loc_us-gaapStatementLineItems_e5b2af" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_5bb0bd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_52655b" xlink:to="loc_us-gaapStatementClassOfStockAxis_5bb0bd" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_d45fef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_5bb0bd" xlink:to="loc_us-gaapClassOfStockDomain_d45fef" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionMember" xlink:label="loc_us-gaapStockOptionMember_9998f6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_d45fef" xlink:to="loc_us-gaapStockOptionMember_9998f6" order="1011" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_393831" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_393831" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_6e3ff6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_6e3ff6" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised_96c9a2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised_96c9a2" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_531166" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_531166" order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_f97ec4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_f97ec4" order="5" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_59bfc7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_59bfc7" order="6" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_89a761" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_89a761" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_86fbd6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_86fbd6" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" xlink:label="loc_tomzShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice_0b692d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_tomzShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice_0b692d" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_dfefd7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_e5b2af" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_dfefd7" order="10" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="995039 - Disclosure - SHAREHOLDERS EQUITY (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_8d6e46" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_634417" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_8d6e46" xlink:to="loc_us-gaapStatementTable_634417" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_a1e82b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_634417" xlink:to="loc_us-gaapStatementLineItems_a1e82b" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_62616e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_634417" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_62616e" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis_62616e" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" order="1020" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointSevenOneMember" xlink:label="loc_tomzRangeZeroPointSevenOneMember_20b6b5" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeZeroPointSevenOneMember_20b6b5" order="1021" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointSevenFiveMember" xlink:label="loc_tomzRangeZeroPointSevenFiveMember_b4464d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeZeroPointSevenFiveMember_b4464d" order="1022" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointEightZeroMember" xlink:label="loc_tomzRangeZeroPointEightZeroMember_7e627c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeZeroPointEightZeroMember_7e627c" order="1023" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointEightFiveMember" xlink:label="loc_tomzRangeZeroPointEightFiveMember_7993e0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeZeroPointEightFiveMember_7993e0" order="1024" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeOnePointOneTwoMember" xlink:label="loc_tomzRangeOnePointOneTwoMember_422c1b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeOnePointOneTwoMember_422c1b" order="1025" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeOnePointNineThreeMember" xlink:label="loc_tomzRangeOnePointNineThreeMember_f8b836" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeOnePointNineThreeMember_f8b836" order="1026" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeFourPointFourZeroMember" xlink:label="loc_tomzRangeFourPointFourZeroMember_f9d8c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeFourPointFourZeroMember_f9d8c1" order="1027" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeSevenPointZeroSixMember" xlink:label="loc_tomzRangeSevenPointZeroSixMember_171e94" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_31781e" xlink:to="loc_tomzRangeSevenPointZeroSixMember_171e94" order="1028" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_32c0e8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a1e82b" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_32c0e8" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_7fcad3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a1e82b" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_7fcad3" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_736d8d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a1e82b" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_736d8d" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_b5adf9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_a1e82b" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_b5adf9" order="4" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="995040 - Disclosure - SHAREHOLDERS EQUITY (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_e6c608" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_0e41e6" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_e6c608" xlink:to="loc_us-gaapStatementTable_0e41e6" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_532f25" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_0e41e6" xlink:to="loc_us-gaapStatementLineItems_532f25" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis_3c9255" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_0e41e6" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis_3c9255" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_cb62cf" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis_3c9255" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_cb62cf" order="1010" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember_d77c80" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain_cb62cf" xlink:to="loc_tomzWarrantsMember_d77c80" order="1011" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2ad488" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_2ad488" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_6a4f16" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations_6a4f16" order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_a0a60b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_a0a60b" order="3" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2d338d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2d338d" order="4" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c88e82" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c88e82" order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_da991c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_da991c" order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_07f36c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_07f36c" order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_a7b574" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_532f25" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_a7b574" order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="995041 - Disclosure - SHAREHOLDERS EQUITY (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_11c931" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_f57c8d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_11c931" xlink:to="loc_us-gaapStatementTable_f57c8d" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_99eecb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f57c8d" xlink:to="loc_us-gaapStatementLineItems_99eecb" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis_ba9f17" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f57c8d" xlink:to="loc_us-gaapAwardTypeAxis_ba9f17" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis_ba9f17" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_09fbbd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_f57c8d" xlink:to="loc_us-gaapStatementClassOfStockAxis_09fbbd" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_2403dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_09fbbd" xlink:to="loc_us-gaapClassOfStockDomain_2403dd" order="1030" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockWarrantsMember" xlink:label="loc_tomzStockWarrantsMember_4aee4d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_2403dd" xlink:to="loc_tomzStockWarrantsMember_4aee4d" order="1031" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsOneMember" xlink:label="loc_tomzWarrantsOneMember_fb8079" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsOneMember_fb8079" order="1032" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsTwoMember" xlink:label="loc_tomzWarrantsTwoMember_0d1298" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsTwoMember_0d1298" order="1033" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsThreeMember" xlink:label="loc_tomzWarrantsThreeMember_cf36a8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsThreeMember_cf36a8" order="1034" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsSevenMember" xlink:label="loc_tomzWarrantsSevenMember_b01d32" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsSevenMember_b01d32" order="1035" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsEightMember" xlink:label="loc_tomzWarrantsEightMember_5be58e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsEightMember_5be58e" order="1036" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsTenMember" xlink:label="loc_tomzWarrantsTenMember_ac2e5c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsTenMember_ac2e5c" order="1037" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsElevenMember" xlink:label="loc_tomzWarrantsElevenMember_6a3c48" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_39f8c1" xlink:to="loc_tomzWarrantsElevenMember_6a3c48" order="1038" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_454313" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_99eecb" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_454313" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_acb8c2" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_99eecb" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber_acb8c2" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_291306" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_99eecb" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_291306" order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_99cd52" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_99eecb" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_99cd52" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="995042 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract_bf11fd" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_4f52dc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStockholdersEquityAbstract_bf11fd" xlink:to="loc_us-gaapStatementTable_4f52dc" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_ef1b05" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4f52dc" xlink:to="loc_us-gaapStatementLineItems_ef1b05" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis_5d37c1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4f52dc" xlink:to="loc_us-gaapAwardDateAxis_5d37c1" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_748e5c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateAxis_5d37c1" xlink:to="loc_us-gaapAwardDateDomain_748e5c" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis_57238f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_4f52dc" xlink:to="loc_us-gaapStatementClassOfStockAxis_57238f" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_77de56" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementClassOfStockAxis_57238f" xlink:to="loc_us-gaapClassOfStockDomain_77de56" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember_e8518f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_77de56" xlink:to="loc_us-gaapSeriesBPreferredStockMember_e8518f" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember_8e80a1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapClassOfStockDomain_77de56" xlink:to="loc_us-gaapSeriesAPreferredStockMember_8e80a1" order="1022" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MayTwentyTwentyFiveMember" xlink:label="loc_tomzMayTwentyTwentyFiveMember_9538ba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_748e5c" xlink:to="loc_tomzMayTwentyTwentyFiveMember_9538ba" order="1023" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MayTwentyTwentyFourMember" xlink:label="loc_tomzMayTwentyTwentyFourMember_899e06" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardDateDomain_748e5c" xlink:to="loc_tomzMayTwentyTwentyFourMember_899e06" order="1024" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_cf3ec9" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues_cf3ec9" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue_7283a8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapCommonStockValue_7283a8" order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock_8305e7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock_8305e7" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_923f0e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice_923f0e" order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised_50ba0b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised_50ba0b" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1_9be6c4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1_9be6c4" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_3c2117" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_3c2117" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_bc7089" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_bc7089" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_c57e08" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_c57e08" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_9ec2a8" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_9ec2a8" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GrantFairValueOfPerShare" xlink:label="loc_tomzGrantFairValueOfPerShare_594241" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_tomzGrantFairValueOfPerShare_594241" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized_b34183" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapPreferredStockSharesAuthorized_b34183" order="12" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued_3b4e23" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapPreferredStockSharesIssued_3b4e23" order="13" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeConvertiblePreferredStockStatedValue" xlink:label="loc_tomzCumulativeConvertiblePreferredStockStatedValue_2f4ee1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_tomzCumulativeConvertiblePreferredStockStatedValue_2f4ee1" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding_9904ed" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapPreferredStockSharesOutstanding_9904ed" order="15" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeDividendOfPreferredStock" xlink:label="loc_tomzCumulativeDividendOfPreferredStock_207388" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_tomzCumulativeDividendOfPreferredStock_207388" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare_e2c137" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ef1b05" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare_e2c137" order="17" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="995043 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ContractsAndAgreementsAbstract" xlink:label="loc_tomzContractsAndAgreementsAbstract_83cfd1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_35ac1d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzContractsAndAgreementsAbstract_83cfd1" xlink:to="loc_us-gaapStatementTable_35ac1d" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_bc3224" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_35ac1d" xlink:to="loc_us-gaapStatementLineItems_bc3224" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_d6012f" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_35ac1d" xlink:to="loc_us-gaapPlanNameAxis_d6012f" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_2b2f22" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_d6012f" xlink:to="loc_us-gaapPlanNameDomain_2b2f22" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis_fbc79c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_35ac1d" xlink:to="loc_srtTitleOfIndividualAxis_fbc79c" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3413ef" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis_fbc79c" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3413ef" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAxis" xlink:label="loc_us-gaapRelatedPartyTransactionAxis_10019e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_35ac1d" xlink:to="loc_us-gaapRelatedPartyTransactionAxis_10019e" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="loc_us-gaapRelatedPartyTransactionDomain_5b8f9b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionAxis_10019e" xlink:to="loc_us-gaapRelatedPartyTransactionDomain_5b8f9b" order="1050" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithElissaJShaneMember_b0c43c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_2b2f22" xlink:to="loc_tomzExecutiveAgreementsWithElissaJShaneMember_b0c43c" order="1051" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CommitteeChairpersonMember" xlink:label="loc_tomzCommitteeChairpersonMember_c31108" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_3413ef" xlink:to="loc_tomzCommitteeChairpersonMember_c31108" order="1052" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MrVanstonMember" xlink:label="loc_tomzMrVanstonMember_b2a891" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRelatedPartyTransactionDomain_5b8f9b" xlink:to="loc_tomzMrVanstonMember_b2a891" order="1053" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalariesAndWages" xlink:label="loc_us-gaapSalariesAndWages_2666dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bc3224" xlink:to="loc_us-gaapSalariesAndWages_2666dd" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DiscretionaryBonus" xlink:label="loc_tomzDiscretionaryBonus_203556" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bc3224" xlink:to="loc_tomzDiscretionaryBonus_203556" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross_9657d7" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bc3224" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross_9657d7" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AdditionalRestrictedStockGranted" xlink:label="loc_tomzAdditionalRestrictedStockGranted_4a4c71" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bc3224" xlink:to="loc_tomzAdditionalRestrictedStockGranted_4a4c71" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForManagementFee" xlink:label="loc_us-gaapPaymentForManagementFee_49a83c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_bc3224" xlink:to="loc_us-gaapPaymentForManagementFee_49a83c" order="5" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="995044 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent_b77144" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_us-gaapEmployeeRelatedLiabilitiesCurrentAndNoncurrent_b77144" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent" xlink:label="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent_29d192" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_us-gaapAccruedPayrollTaxesCurrentAndNoncurrent_29d192" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DirectorFeesCurrentAndNoncurrent" xlink:label="loc_tomzDirectorFeesCurrentAndNoncurrent_5ae6ce" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_tomzDirectorFeesCurrentAndNoncurrent_5ae6ce" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SalesTaxPayable" xlink:label="loc_tomzSalesTaxPayable_d6acaa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_tomzSalesTaxPayable_d6acaa" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyAccrualCurrent" xlink:label="loc_us-gaapExtendedProductWarrantyAccrualCurrent_484695" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_us-gaapExtendedProductWarrantyAccrualCurrent_484695" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent" xlink:label="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent_5f7a4e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_us-gaapOtherAccruedLiabilitiesCurrentAndNoncurrent_5f7a4e" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_33acc0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAccruedLiabilitiesAndOtherLiabilitiesAbstract_21d719" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities_33acc0" order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="995045 - Disclosure - ACCRUED WARRANTY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="loc_us-gaapDebtDisclosureAbstract_c6b30e" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="loc_us-gaapExtendedProductWarrantyAccrual_96deaa" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_c6b30e" xlink:to="loc_us-gaapExtendedProductWarrantyAccrual_96deaa" order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease" xlink:label="loc_us-gaapProductWarrantyAccrualPeriodIncreaseDecrease_2828ba" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_c6b30e" xlink:to="loc_us-gaapProductWarrantyAccrualPeriodIncreaseDecrease_2828ba" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SettlementOfWarrantyClaims" xlink:label="loc_tomzSettlementOfWarrantyClaims_c18aa4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_c6b30e" xlink:to="loc_tomzSettlementOfWarrantyClaims_c18aa4" order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtendedProductWarrantyAccrual" xlink:label="loc_us-gaapExtendedProductWarrantyAccrual_7c08db" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapDebtDisclosureAbstract_c6b30e" xlink:to="loc_us-gaapExtendedProductWarrantyAccrual_7c08db" order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="995046 - Disclosure - INCOME TAXES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxDisclosureAbstract" xlink:label="loc_us-gaapIncomeTaxDisclosureAbstract_dfd308" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="loc_us-gaapDeferredTaxAssetsValuationAllowance_65114c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_dfd308" xlink:to="loc_us-gaapDeferredTaxAssetsValuationAllowance_65114c" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_USDeferredTaxAssetsValuationAllowanceDescription" xlink:label="loc_tomzUSDeferredTaxAssetsValuationAllowanceDescription_feda22" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapIncomeTaxDisclosureAbstract_dfd308" xlink:to="loc_tomzUSDeferredTaxAssetsValuationAllowanceDescription_feda22" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="995047 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RisksAndUncertaintiesAbstract" xlink:label="loc_us-gaapRisksAndUncertaintiesAbstract_8ac5ba" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_654c14" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapRisksAndUncertaintiesAbstract_8ac5ba" xlink:to="loc_us-gaapStatementTable_654c14" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_b57880" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_654c14" xlink:to="loc_us-gaapStatementLineItems_b57880" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis_60b311" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_654c14" xlink:to="loc_srtMajorCustomersAxis_60b311" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_74f7b0" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtMajorCustomersAxis_60b311" xlink:to="loc_srtNameOfMajorCustomerDomain_74f7b0" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis_27e243" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_654c14" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis_27e243" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_f9ad22" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis_27e243" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_f9ad22" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_a9d485" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_654c14" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_a9d485" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_4bf125" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis_a9d485" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_4bf125" order="1040" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TwoCustomersMember" xlink:label="loc_tomzTwoCustomersMember_742470" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtNameOfMajorCustomerDomain_74f7b0" xlink:to="loc_tomzTwoCustomersMember_742470" order="1041" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaapAccountsReceivableMember_4ca2bb" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain_f9ad22" xlink:to="loc_us-gaapAccountsReceivableMember_4ca2bb" order="1042" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CustomerListsOneMember" xlink:label="loc_tomzCustomerListsOneMember_642020" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_4bf125" xlink:to="loc_tomzCustomerListsOneMember_642020" order="1043" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RevenueConcentrationRiskPercentage" xlink:label="loc_tomzRevenueConcentrationRiskPercentage_62c69c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b57880" xlink:to="loc_tomzRevenueConcentrationRiskPercentage_62c69c" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsReceivableConcentrationRiskPercentage" xlink:label="loc_tomzAccountsReceivableConcentrationRiskPercentage_75cfb3" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_b57880" xlink:to="loc_tomzAccountsReceivableConcentrationRiskPercentage_75cfb3" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" xlink:title="995048 - Disclosure - EMPLOYEE RETENTION CREDITS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EmployeeRetentionCreditsAbstract" xlink:label="loc_tomzEmployeeRetentionCreditsAbstract_872d07" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherIncome" xlink:label="loc_us-gaapOtherIncome_359c8d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzEmployeeRetentionCreditsAbstract_872d07" xlink:to="loc_us-gaapOtherIncome_359c8d" order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeOther" xlink:label="loc_us-gaapInterestIncomeOther_7cb167" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_tomzEmployeeRetentionCreditsAbstract_872d07" xlink:to="loc_us-gaapInterestIncomeOther_7cb167" order="2" />
  </link:presentationLink>
  <link:presentationLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="995049 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="loc_us-gaapSubsequentEventsAbstract_38c660" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable_78a143" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventsAbstract_38c660" xlink:to="loc_us-gaapStatementTable_78a143" order="100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems_ca541b" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_78a143" xlink:to="loc_us-gaapStatementLineItems_ca541b" order="2000" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis_ed4bf4" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_78a143" xlink:to="loc_us-gaapSubsequentEventTypeAxis_ed4bf4" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_03b63d" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeAxis_ed4bf4" xlink:to="loc_us-gaapSubsequentEventTypeDomain_03b63d" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis_c78333" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_78a143" xlink:to="loc_us-gaapAwardTypeAxis_c78333" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_388478" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapAwardTypeAxis_c78333" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_388478" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis_f57669" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_78a143" xlink:to="loc_srtTitleOfIndividualAxis_f57669" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_0a0898" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualAxis_f57669" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_0a0898" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis_6cee41" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementTable_78a143" xlink:to="loc_us-gaapPlanNameAxis_6cee41" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_6bab2c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameAxis_6cee41" xlink:to="loc_us-gaapPlanNameDomain_6bab2c" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember_ff08dd" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapSubsequentEventTypeDomain_03b63d" xlink:to="loc_us-gaapSubsequentEventMember_ff08dd" order="1051" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NonEmployeeDirectorMember" xlink:label="loc_tomzNonEmployeeDirectorMember_301dbc" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_388478" xlink:to="loc_tomzNonEmployeeDirectorMember_301dbc" order="1052" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ChiefFinancialOfficerMember" xlink:label="loc_srtChiefFinancialOfficerMember_f72bb1" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_0a0898" xlink:to="loc_srtChiefFinancialOfficerMember_f72bb1" order="1053" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityPurchaseAgreementMember" xlink:label="loc_tomzEquityPurchaseAgreementMember_df0064" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapPlanNameDomain_6bab2c" xlink:to="loc_tomzEquityPurchaseAgreementMember_df0064" order="1054" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CommonStockIsuable" xlink:label="loc_tomzCommonStockIsuable_b9521a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_tomzCommonStockIsuable_b9521a" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ExcessInCommonStockPercentage" xlink:label="loc_tomzExcessInCommonStockPercentage_03368e" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_tomzExcessInCommonStockPercentage_03368e" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" xlink:label="loc_tomzEquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock_a3426c" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_tomzEquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock_a3426c" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockNoParValue" xlink:label="loc_us-gaapCommonStockNoParValue_a81018" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_us-gaapCommonStockNoParValue_a81018" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_a14fda" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_a14fda" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DirectorFees" xlink:label="loc_tomzDirectorFees_e15bea" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_tomzDirectorFees_e15bea" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e6dd27" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_e6dd27" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DescriptionOfVestingRestricatedStockUnits" xlink:label="loc_tomzDescriptionOfVestingRestricatedStockUnits_76991a" />
    <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaapStatementLineItems_ca541b" xlink:to="loc_tomzDescriptionOfVestingRestricatedStockUnits_76991a" order="8" />
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>tomz-20250930_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="us-ascii" standalone="yes"?>
<!--XBRL Document Created with XBRLMaster-->
<!--Version: 2.3.08-->
<!--Based on XBRL 2.1-->
<!--Date of creation: 11/14/2025-->
<!--Software architectural design and coding: A'c Dharmapremananda Avt.-->
<!--Copyright (c) 2025 I-NET Business Solutions, Inc. All Rights Reserved.-->
<link:linkbase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://tomz.com/role/Cover" xlink:href="tomz-20250930.xsd#Cover" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:href="tomz-20250930.xsd#CondensedConsolidatedBalanceSheets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:href="tomz-20250930.xsd#CondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:href="tomz-20250930.xsd#CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InsiderTradingArragements" xlink:href="tomz-20250930.xsd#InsiderTradingArragements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/DescriptionOfBusiness" xlink:href="tomz-20250930.xsd#DescriptionOfBusiness" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/INVENTORIES" xlink:href="tomz-20250930.xsd#INVENTORIES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDeposits" xlink:href="tomz-20250930.xsd#VendorDeposits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipment" xlink:href="tomz-20250930.xsd#PropertyAndEquipment" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssets" xlink:href="tomz-20250930.xsd#IntangibleAssets" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LEASES" xlink:href="tomz-20250930.xsd#LEASES" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContract" xlink:href="tomz-20250930.xsd#CloudComputingServiceContract" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebt" xlink:href="tomz-20250930.xsd#ConvertibleDebt" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquity" xlink:href="tomz-20250930.xsd#ShareholdersEquity" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CommitmentsAndContingencies" xlink:href="tomz-20250930.xsd#CommitmentsAndContingencies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreements" xlink:href="tomz-20250930.xsd#ContractsAndAgreements" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilities" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarranty" xlink:href="tomz-20250930.xsd#AccruedWarranty" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxes" xlink:href="tomz-20250930.xsd#IncomeTaxes" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentration" xlink:href="tomz-20250930.xsd#CustomerConcentration" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SegmentReporting" xlink:href="tomz-20250930.xsd#SegmentReporting" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/EmployeeRetentionCredits" xlink:href="tomz-20250930.xsd#EmployeeRetentionCredits" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEvents" xlink:href="tomz-20250930.xsd#SubsequentEvents" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesTables" xlink:href="tomz-20250930.xsd#InventoriesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentTables" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsTables" xlink:href="tomz-20250930.xsd#IntangibleAssetsTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesTables" xlink:href="tomz-20250930.xsd#LeasesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtTables" xlink:href="tomz-20250930.xsd#ConvertibleDebtTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityTables" xlink:href="tomz-20250930.xsd#ShareholdersEquityTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyTables" xlink:href="tomz-20250930.xsd#AccruedWarrantyTables" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:href="tomz-20250930.xsd#SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/InventoriesDetails" xlink:href="tomz-20250930.xsd#InventoriesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:href="tomz-20250930.xsd#VendorDepositsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:href="tomz-20250930.xsd#PropertyAndEquipmentDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails1" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetails2" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:href="tomz-20250930.xsd#IntangibleAssetsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails" xlink:href="tomz-20250930.xsd#LeasesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails1" xlink:href="tomz-20250930.xsd#LeasesDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails2" xlink:href="tomz-20250930.xsd#LeasesDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails3" xlink:href="tomz-20250930.xsd#LeasesDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetails4" xlink:href="tomz-20250930.xsd#LeasesDetails4" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/LeasesDetailsNarrative" xlink:href="tomz-20250930.xsd#LeasesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:href="tomz-20250930.xsd#CloudComputingServiceContractDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtDetails" xlink:href="tomz-20250930.xsd#ConvertibleDebtDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ConvertibleDebtDetailsNarrative" xlink:href="tomz-20250930.xsd#ConvertibleDebtDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails1" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails1" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails2" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails2" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetails3" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetails3" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:href="tomz-20250930.xsd#ShareholdersEquityDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:href="tomz-20250930.xsd#ContractsAndAgreementsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="tomz-20250930.xsd#AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/AccruedWarrantyDetails" xlink:href="tomz-20250930.xsd#AccruedWarrantyDetails" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:href="tomz-20250930.xsd#IncomeTaxesDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:href="tomz-20250930.xsd#CustomerConcentrationDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" xlink:href="tomz-20250930.xsd#EmployeeRetentionCreditsDetailsNarrative" xlink:type="simple" />
  <link:roleRef roleURI="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:href="tomz-20250930.xsd#SubsequentEventsDetailsNarrative" xlink:type="simple" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" arcroleURI="http://xbrl.org/int/dim/arcrole/all" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#notAll" arcroleURI="http://xbrl.org/int/dim/arcrole/notAll" />
  <link:arcroleRef xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/Cover" xlink:title="00000001 - Document - Cover Page Information">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="loc_deiCover" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheets" xlink:title="110200 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesBPreferredStockMember" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesAPreferredStockMember" order="1022" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="loc_us-gaapAssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssetsAbstract" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="loc_us-gaapAssetsCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssetsCurrentAbstract" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="loc_us-gaapAccountsReceivableNetCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccountsReceivableNetCurrent" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryCurrent" xlink:label="loc_tomzInventoryCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzInventoryCurrent" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DepositsAssetsCurrent" xlink:label="loc_us-gaapDepositsAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDepositsAssetsCurrent" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseCurrent" xlink:label="loc_us-gaapPrepaidExpenseCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPrepaidExpenseCurrent" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="loc_us-gaapAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssetsCurrent" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="loc_us-gaapPropertyPlantAndEquipmentNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPropertyPlantAndEquipmentNet" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsAbstract" xlink:label="loc_us-gaapOtherAssetsAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssetsAbstract" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:label="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapIntangibleAssetsNetExcludingGoodwill" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="loc_us-gaapOperatingLeaseRightOfUseAsset" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOperatingLeaseRightOfUseAsset" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="loc_us-gaapOtherAssetsCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssetsCurrent" order="13" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssets" xlink:label="loc_us-gaapOtherAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherAssets" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="loc_us-gaapAssets" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAssets" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquityAbstract" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="loc_us-gaapLiabilitiesCurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesCurrentAbstract" order="17" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="loc_us-gaapAccountsPayableCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccountsPayableCurrent" order="18" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAccruedLiabilitiesAndOtherLiabilities" order="19" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredRevenueCurrent" xlink:label="loc_us-gaapDeferredRevenueCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredRevenueCurrent" order="20" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOperatingLeaseLiabilityCurrent" order="21" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="loc_us-gaapLiabilitiesCurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesCurrent" order="22" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrentAbstract" xlink:label="loc_us-gaapLiabilitiesNoncurrentAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesNoncurrentAbstract" order="23" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="loc_us-gaapOperatingLeaseLiabilityNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOperatingLeaseLiabilityNoncurrent" order="24" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleLongTermNotesPayable" xlink:label="loc_us-gaapConvertibleLongTermNotesPayable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapConvertibleLongTermNotesPayable" order="25" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesNoncurrent" xlink:label="loc_us-gaapLiabilitiesNoncurrent" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesNoncurrent" order="26" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="loc_us-gaapLiabilities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilities" order="27" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="loc_us-gaapCommitmentsAndContingencies" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommitmentsAndContingencies" order="28" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="loc_us-gaapStockholdersEquityAbstract" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquityAbstract" order="29" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="loc_us-gaapPreferredStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockValue" order="30" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockValue" order="31" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapital" xlink:label="loc_us-gaapAdditionalPaidInCapital" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAdditionalPaidInCapital" order="32" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="loc_us-gaapRetainedEarningsAccumulatedDeficit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapRetainedEarningsAccumulatedDeficit" order="33" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity" order="34" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="loc_us-gaapLiabilitiesAndStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapLiabilitiesAndStockholdersEquity" order="35" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical" xlink:title="110201 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesBPreferredStockMember" order="1011" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesAPreferredStockMember" order="1012" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentUnamortizedDiscount" xlink:label="loc_us-gaapDebtInstrumentUnamortizedDiscount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDebtInstrumentUnamortizedDiscount" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="loc_us-gaapCommonStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockParOrStatedValuePerShare" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesAuthorized" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="loc_us-gaapCommonStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesIssued" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesOutstanding" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesAuthorized" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesIssued" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesOutstanding" order="9" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeDividendPercenatge" xlink:label="loc_tomzCumulativeDividendPercenatge" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCumulativeDividendPercenatge" order="10" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited" xlink:title="124100 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited" xlink:title="148600 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="loc_us-gaapStatementEquityComponentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementEquityComponentsAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="loc_us-gaapEquityComponentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementEquityComponentsAxis" xlink:to="loc_us-gaapEquityComponentDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SeriesAPreferredStocksMember" xlink:label="loc_tomzSeriesAPreferredStocksMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_tomzSeriesAPreferredStocksMember" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="loc_us-gaapCommonStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapCommonStockMember" order="1022" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="loc_us-gaapAdditionalPaidInCapitalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapAdditionalPaidInCapitalMember" order="1023" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="loc_us-gaapRetainedEarningsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapEquityComponentDomain" xlink:to="loc_us-gaapRetainedEarningsMember" order="1024" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssued" xlink:label="loc_us-gaapSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesIssued" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="loc_us-gaapStockholdersEquity" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockholdersEquity" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OptionsExercisedShares" xlink:label="loc_tomzOptionsExercisedShares" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzOptionsExercisedShares" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OptionsExercisedAmount" xlink:label="loc_tomzOptionsExercisedAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzOptionsExercisedAmount" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesIssuedForServices" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueIssuedForServices" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueIssuedForServices" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLoss" order="8" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:title="170000 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/InsiderTradingArragements" xlink:title="170001 - Disclosure - Insider Trading Arragements" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/DescriptionOfBusiness" xlink:title="200000 - Disclosure - DESCRIPTION OF BUSINESS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPolicies" xlink:title="290000 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/INVENTORIES" xlink:title="340000 - Disclosure - INVENTORIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDeposits" xlink:title="778000 - Disclosure - VENDOR DEPOSITS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipment" xlink:title="778001 - Disclosure - PROPERTY AND EQUIPMENT" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssets" xlink:title="778002 - Disclosure - INTANGIBLE ASSETS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LEASES" xlink:title="842000 - Disclosure - LEASES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContract" xlink:title="842001 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebt" xlink:title="842002 - Disclosure - CONVERTIBLE DEBT" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquity" xlink:title="842003 - Disclosure - SHAREHOLDERS EQUITY" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CommitmentsAndContingencies" xlink:title="842004 - Disclosure - COMMITMENTS AND CONTINGENCIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreements" xlink:title="842005 - Disclosure - CONTRACTS AND AGREEMENTS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities" xlink:title="842006 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarranty" xlink:title="842007 - Disclosure - ACCRUED WARRANTY" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxes" xlink:title="995000 - Disclosure - INCOME TAXES" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentration" xlink:title="995001 - Disclosure - CUSTOMER CONCENTRATION" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SegmentReporting" xlink:title="995002 - Disclosure - SEGMENT REPORTING" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/EmployeeRetentionCredits" xlink:title="995003 - Disclosure - EMPLOYEE RETENTION CREDITS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEvents" xlink:title="995004 - Disclosure - SUBSEQUENT EVENTS" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies" xlink:title="995005 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables" xlink:title="995006 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesTables" xlink:title="995007 - Disclosure - INVENTORIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentTables" xlink:title="995008 - Disclosure - PROPERTY AND EQUIPMENT (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsTables" xlink:title="995009 - Disclosure - INTANGIBLE ASSETS (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesTables" xlink:title="995010 - Disclosure - LEASES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtTables" xlink:title="995011 - Disclosure - CONVERTIBLE DEBT (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityTables" xlink:title="995012 - Disclosure - SHAREHOLDERS EQUITY (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables" xlink:title="995013 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyTables" xlink:title="995014 - Disclosure - ACCRUED WARRANTY (Tables)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails" xlink:title="995015 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1" xlink:title="995016 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2" xlink:title="995017 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebenturesMember" xlink:label="loc_tomzConvertibleDebenturesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzConvertibleDebenturesMember" order="1011" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockOptionsMember" order="1012" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockWarrantsMember" xlink:label="loc_tomzStockWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockWarrantsMember" order="1013" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PreferredStocksMember" xlink:label="loc_tomzPreferredStocksMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzPreferredStocksMember" order="1014" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="loc_us-gaapNetIncomeLoss" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLoss" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesIssuedBasic" xlink:label="loc_us-gaapWeightedAverageNumberOfSharesIssuedBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWeightedAverageNumberOfSharesIssuedBasic" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapWeightedAverageNumberOfDilutedSharesOutstanding" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasicEarningsPerShareProForma" xlink:label="loc_us-gaapBasicEarningsPerShareProForma" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapBasicEarningsPerShareProForma" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DilutedEarningsPerShareProForma" xlink:label="loc_us-gaapDilutedEarningsPerShareProForma" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDilutedEarningsPerShareProForma" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="6" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3" xlink:title="995018 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1050" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeAxis" xlink:label="loc_us-gaapShortTermDebtTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapShortTermDebtTypeAxis" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="loc_us-gaapShortTermDebtTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapShortTermDebtTypeAxis" xlink:to="loc_us-gaapShortTermDebtTypeDomain" order="1060" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShortTermDebtTypeDomain" xlink:label="loc_us-gaapShortTermDebtTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapShortTermDebtTypeAxis" xlink:to="loc_us-gaapShortTermDebtTypeDomain_10" order="1070" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockOptionsMember" order="1051" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain" xlink:to="loc_tomzWarrantsMember" order="1052" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConvertibleDebtMember" xlink:label="loc_us-gaapConvertibleDebtMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShortTermDebtTypeDomain" xlink:to="loc_us-gaapConvertibleDebtMember" order="1053" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount" xlink:label="loc_tomzAntidilutiveExcludedFromComputationOfEarningsPerShareAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzAntidilutiveExcludedFromComputationOfEarningsPerShareAmount" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4" xlink:title="995019 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementBusinessSegmentsAxis" xlink:label="loc_us-gaapStatementBusinessSegmentsAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementBusinessSegmentsAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentDomain" xlink:label="loc_us-gaapSegmentDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementBusinessSegmentsAxis" xlink:to="loc_us-gaapSegmentDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxAuthorityNameAxis" xlink:label="loc_us-gaapIncomeTaxAuthorityNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapIncomeTaxAuthorityNameAxis" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaapIncomeTaxAuthorityNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapIncomeTaxAuthorityNameAxis" xlink:to="loc_us-gaapIncomeTaxAuthorityNameDomain" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxAuthorityNameDomain" xlink:label="loc_us-gaapIncomeTaxAuthorityNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapIncomeTaxAuthorityNameAxis" xlink:to="loc_us-gaapIncomeTaxAuthorityNameDomain_10" order="1060" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SteraMistPRoductMember" xlink:label="loc_tomzSteraMistPRoductMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzSteraMistPRoductMember" order="1041" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ServiceAndTrainingMember" xlink:label="loc_tomzServiceAndTrainingMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzServiceAndTrainingMember" order="1042" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProductAndServiceRevenueMember" xlink:label="loc_tomzProductAndServiceRevenueMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSegmentDomain" xlink:to="loc_tomzProductAndServiceRevenueMember" order="1043" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InternationalMember" xlink:label="loc_tomzInternationalMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeTaxAuthorityNameDomain" xlink:to="loc_tomzInternationalMember" order="1044" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GeographicRegionMember" xlink:label="loc_tomzGeographicRegionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeTaxAuthorityNameDomain" xlink:to="loc_tomzGeographicRegionMember" order="1045" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_UnitedStatesMember" xlink:label="loc_tomzUnitedStatesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeTaxAuthorityNameDomain" xlink:to="loc_tomzUnitedStatesMember" order="1046" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesTypeLeaseRevenue" xlink:label="loc_us-gaapSalesTypeLeaseRevenue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSalesTypeLeaseRevenue" order="1" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" xlink:title="995020 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtMajorCustomersAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtinguishmentOfDebtAxis" xlink:label="loc_us-gaapExtinguishmentOfDebtAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapExtinguishmentOfDebtAxis" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ExtinguishmentOfDebtTypeDomain" xlink:label="loc_us-gaapExtinguishmentOfDebtTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapExtinguishmentOfDebtAxis" xlink:to="loc_us-gaapExtinguishmentOfDebtTypeDomain_10" order="1060" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="loc_us-gaapIncomeStatementLocationAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapIncomeStatementLocationAxis" order="1060" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapIncomeStatementLocationAxis" xlink:to="loc_us-gaapIncomeStatementLocationDomain" order="1070" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="loc_us-gaapIncomeStatementLocationDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapIncomeStatementLocationAxis" xlink:to="loc_us-gaapIncomeStatementLocationDomain_10" order="1080" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1070" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1080" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1090" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis" order="1080" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain" order="1090" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_10" order="1100" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="1100" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="1110" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="1120" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConvertibleDebenturesMember" xlink:label="loc_tomzConvertibleDebenturesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzConvertibleDebenturesMember" order="1101" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockOptionsMember" xlink:label="loc_tomzStockOptionsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockOptionsMember" order="1102" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain" xlink:to="loc_tomzWarrantsMember" order="1103" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OneVendorsMember" xlink:label="loc_tomzOneVendorsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzOneVendorsMember" order="1104" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableMember" xlink:label="loc_us-gaapAccountsPayableMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapExtinguishmentOfDebtTypeDomain" xlink:to="loc_us-gaapAccountsPayableMember" order="1105" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TwoVendorsMember" xlink:label="loc_tomzTwoVendorsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzTwoVendorsMember" order="1106" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="loc_us-gaapCostOfSalesMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapIncomeStatementLocationDomain" xlink:to="loc_us-gaapCostOfSalesMember" order="1107" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PreferredAStockMember" xlink:label="loc_tomzPreferredAStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzPreferredAStockMember" order="1108" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityIncentivePlanOneMember" xlink:label="loc_tomzEquityIncentivePlanOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzEquityIncentivePlanOneMember" order="1109" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic" xlink:label="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasic" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetIncomeLossAvailableToCommonStockholdersBasic" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInContinuingOperations" xlink:label="loc_us-gaapNetCashProvidedByUsedInContinuingOperations" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapNetCashProvidedByUsedInContinuingOperations" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCashAndCashEquivalentsAtCarryingValue" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RetainedEarningAccumulatedDeficit" xlink:label="loc_tomzRetainedEarningAccumulatedDeficit" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzRetainedEarningAccumulatedDeficit" order="4" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RecognizeRevenue" xlink:label="loc_tomzRecognizeRevenue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzRecognizeRevenue" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_SalesReturnsAllowanceDuringPeriod" xlink:label="loc_tomzSalesReturnsAllowanceDuringPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzSalesReturnsAllowanceDuringPeriod" order="6" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_InventoryValuationReserve" xlink:label="loc_tomzInventoryValuationReserve" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzInventoryValuationReserve" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" xlink:label="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdvertisingExpense" xlink:label="loc_us-gaapAdvertisingExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAdvertisingExpense" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherResearchAndDevelopmentExpense" xlink:label="loc_us-gaapOtherResearchAndDevelopmentExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapOtherResearchAndDevelopmentExpense" order="10" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FederalDepositInsuranceCorporationPremiumExpense" xlink:label="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFederalDepositInsuranceCorporationPremiumExpense" order="12" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConcentrationRiskPercentage" xlink:label="loc_tomzConcentrationRiskPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzConcentrationRiskPercentage" order="13" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ConcentrationRiskInPercentage" xlink:label="loc_tomzConcentrationRiskInPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzConcentrationRiskInPercentage" order="14" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_PotentiallyDilutiveSecurities" xlink:label="loc_tomzPotentiallyDilutiveSecurities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzPotentiallyDilutiveSecurities" order="15" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="loc_us-gaapCommonStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesOutstanding" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="loc_us-gaapCommonStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockSharesAuthorized" order="17" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/InventoriesDetails" xlink:title="995021 - Disclosure - INVENTORIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/VendorDepositsDetailsNarrative" xlink:title="995022 - Disclosure - VENDOR DEPOSITS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetails" xlink:title="995023 - Disclosure - PROPERTY AND EQUIPMENT (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/PropertyAndEquipmentDetailsNarrative" xlink:title="995024 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails" xlink:title="995025 - Disclosure - INTANGIBLE ASSETS (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntellectualPropertyMember" xlink:label="loc_us-gaapIntellectualPropertyMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_us-gaapIntellectualPropertyMember" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsGross" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsAccumulatedAmortization" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsNet" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsNet" order="3" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails1" xlink:title="995026 - Disclosure - INTANGIBLE ASSETS (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetails2" xlink:title="995027 - Disclosure - INTANGIBLE ASSETS (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IntangibleAssetsDetailsNarrative" xlink:title="995028 - Disclosure - INTANGIBLE ASSETS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails" xlink:title="995029 - Disclosure - LEASES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails1" xlink:title="995030 - Disclosure - LEASES (Details 1)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails2" xlink:title="995031 - Disclosure - LEASES (Details 2)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails3" xlink:title="995032 - Disclosure - LEASES (Details 3)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetails4" xlink:title="995033 - Disclosure - LEASES (Details 4)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/LeasesDetailsNarrative" xlink:title="995034 - Disclosure - LEASES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CloudComputingServiceContractDetailsNarrative" xlink:title="995035 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtDetails" xlink:title="995036 - Disclosure - CONVERTIBLE DEBT (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ConvertibleDebtDetailsNarrative" xlink:title="995037 - Disclosure - CONVERTIBLE DEBT (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapAwardDateAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardDateAxis" xlink:to="loc_us-gaapAwardDateDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapAwardDateAxis" xlink:to="loc_us-gaapAwardDateDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_JuneTwoThousandTwentyFiveMember" xlink:label="loc_tomzJuneTwoThousandTwentyFiveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzJuneTwoThousandTwentyFiveMember" order="1021" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_OctoberandNovemberTwoThousandTwentyThreeMember" xlink:label="loc_tomzOctoberandNovemberTwoThousandTwentyThreeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzOctoberandNovemberTwoThousandTwentyThreeMember" order="1022" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfFinancingCosts" xlink:label="loc_us-gaapAmortizationOfFinancingCosts" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapAmortizationOfFinancingCosts" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ProceedsFromConvertiblePromissoryNotesIssuance" xlink:label="loc_tomzProceedsFromConvertiblePromissoryNotesIssuance" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzProceedsFromConvertiblePromissoryNotesIssuance" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesConversionOfConvertibleSecurities" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DescriptionOfConvertibleNote" xlink:label="loc_tomzDescriptionOfConvertibleNote" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzDescriptionOfConvertibleNote" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InvestmentOwnedBalancePrincipalAmount" xlink:label="loc_us-gaapInvestmentOwnedBalancePrincipalAmount" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapInvestmentOwnedBalancePrincipalAmount" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentInterestRateDuringPeriod" xlink:label="loc_us-gaapDebtInstrumentInterestRateDuringPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDebtInstrumentInterestRateDuringPeriod" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpenseDebt" xlink:label="loc_us-gaapInterestExpenseDebt" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapInterestExpenseDebt" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesIssuedPricePerShare" xlink:label="loc_us-gaapSharesIssuedPricePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharesIssuedPricePerShare" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AmortizationOfFinancingCostsAdditions" xlink:label="loc_tomzAmortizationOfFinancingCostsAdditions" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzAmortizationOfFinancingCostsAdditions" order="9" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails" xlink:title="995038 - Disclosure - SHAREHOLDERS EQUITY (Details)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockOptionMember" xlink:label="loc_us-gaapStockOptionMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapStockOptionMember" order="1011" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesStockOptionsExercised" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="8" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" xlink:label="loc_tomzShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice" order="9" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails1" xlink:title="995039 - Disclosure - SHAREHOLDERS EQUITY (Details 1)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OptionIndexedToIssuersEquityEquityAxis" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OptionIndexedToIssuersEquityTypeDomain" xlink:label="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityEquityAxis" xlink:to="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointSevenOneMember" xlink:label="loc_tomzRangeZeroPointSevenOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeZeroPointSevenOneMember" order="1021" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointSevenFiveMember" xlink:label="loc_tomzRangeZeroPointSevenFiveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeZeroPointSevenFiveMember" order="1022" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointEightZeroMember" xlink:label="loc_tomzRangeZeroPointEightZeroMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeZeroPointEightZeroMember" order="1023" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeZeroPointEightFiveMember" xlink:label="loc_tomzRangeZeroPointEightFiveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeZeroPointEightFiveMember" order="1024" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeOnePointOneTwoMember" xlink:label="loc_tomzRangeOnePointOneTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeOnePointOneTwoMember" order="1025" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeOnePointNineThreeMember" xlink:label="loc_tomzRangeOnePointNineThreeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeOnePointNineThreeMember" order="1026" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeFourPointFourZeroMember" xlink:label="loc_tomzRangeFourPointFourZeroMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeFourPointFourZeroMember" order="1027" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RangeSevenPointZeroSixMember" xlink:label="loc_tomzRangeSevenPointZeroSixMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapOptionIndexedToIssuersEquityTypeDomain" xlink:to="loc_tomzRangeSevenPointZeroSixMember" order="1028" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="4" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails2" xlink:title="995040 - Disclosure - SHAREHOLDERS EQUITY (Details 2)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightAxis" xlink:label="loc_us-gaapClassOfWarrantOrRightAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapClassOfWarrantOrRightAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfWarrantOrRightDomain" xlink:label="loc_us-gaapClassOfWarrantOrRightDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapClassOfWarrantOrRightAxis" xlink:to="loc_us-gaapClassOfWarrantOrRightDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsMember" xlink:label="loc_tomzWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfWarrantOrRightDomain" xlink:to="loc_tomzWarrantsMember" order="1011" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice" order="7" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetails3" xlink:title="995041 - Disclosure - SHAREHOLDERS EQUITY (Details 3)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapAwardTypeAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1050" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_StockWarrantsMember" xlink:label="loc_tomzStockWarrantsMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_tomzStockWarrantsMember" order="1031" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsOneMember" xlink:label="loc_tomzWarrantsOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsOneMember" order="1032" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsTwoMember" xlink:label="loc_tomzWarrantsTwoMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsTwoMember" order="1033" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsThreeMember" xlink:label="loc_tomzWarrantsThreeMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsThreeMember" order="1034" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsSevenMember" xlink:label="loc_tomzWarrantsSevenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsSevenMember" order="1035" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsEightMember" xlink:label="loc_tomzWarrantsEightMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsEightMember" order="1036" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsTenMember" xlink:label="loc_tomzWarrantsTenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsTenMember" order="1037" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsElevenMember" xlink:label="loc_tomzWarrantsElevenMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzWarrantsElevenMember" order="1038" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="4" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ShareholdersEquityDetailsNarrative" xlink:title="995042 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateAxis" xlink:label="loc_us-gaapAwardDateAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapAwardDateAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardDateAxis" xlink:to="loc_us-gaapAwardDateDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardDateDomain" xlink:label="loc_us-gaapAwardDateDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapAwardDateAxis" xlink:to="loc_us-gaapAwardDateDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="loc_us-gaapStatementClassOfStockAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapStatementClassOfStockAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockDomain" xlink:label="loc_us-gaapClassOfStockDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapStatementClassOfStockAxis" xlink:to="loc_us-gaapClassOfStockDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesBPreferredStockMember" xlink:label="loc_us-gaapSeriesBPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesBPreferredStockMember" order="1021" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SeriesAPreferredStockMember" xlink:label="loc_us-gaapSeriesAPreferredStockMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapClassOfStockDomain" xlink:to="loc_us-gaapSeriesAPreferredStockMember" order="1022" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MayTwentyTwentyFiveMember" xlink:label="loc_tomzMayTwentyTwentyFiveMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzMayTwentyTwentyFiveMember" order="1023" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MayTwentyTwentyFourMember" xlink:label="loc_tomzMayTwentyTwentyFourMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapAwardDateDomain" xlink:to="loc_tomzMayTwentyTwentyFourMember" order="1024" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesNewIssues" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesNewIssues" order="1" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="loc_us-gaapCommonStockValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockValue" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_WarrantsIssuedUponPurchaseShareOfCommonStock" xlink:label="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzWarrantsIssuedUponPurchaseShareOfCommonStock" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodValueStockOptionsExercised" order="5" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1" xlink:label="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapDeferredCompensationArrangementWithIndividualMaximumContractualTerm1" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" order="7" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" order="8" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" order="9" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:label="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" order="10" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_GrantFairValueOfPerShare" xlink:label="loc_tomzGrantFairValueOfPerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzGrantFairValueOfPerShare" order="11" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="loc_us-gaapPreferredStockSharesAuthorized" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesAuthorized" order="12" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="loc_us-gaapPreferredStockSharesIssued" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesIssued" order="13" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeConvertiblePreferredStockStatedValue" xlink:label="loc_tomzCumulativeConvertiblePreferredStockStatedValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCumulativeConvertiblePreferredStockStatedValue" order="14" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="loc_us-gaapPreferredStockSharesOutstanding" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockSharesOutstanding" order="15" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CumulativeDividendOfPreferredStock" xlink:label="loc_tomzCumulativeDividendOfPreferredStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCumulativeDividendOfPreferredStock" order="16" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="loc_us-gaapPreferredStockParOrStatedValuePerShare" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPreferredStockParOrStatedValuePerShare" order="17" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/ContractsAndAgreementsDetailsNarrative" xlink:title="995043 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtTitleOfIndividualAxis" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" order="1050" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAxis" xlink:label="loc_us-gaapRelatedPartyTransactionAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapRelatedPartyTransactionAxis" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="loc_us-gaapRelatedPartyTransactionDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapRelatedPartyTransactionAxis" xlink:to="loc_us-gaapRelatedPartyTransactionDomain" order="1060" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="loc_us-gaapRelatedPartyTransactionDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapRelatedPartyTransactionAxis" xlink:to="loc_us-gaapRelatedPartyTransactionDomain_10" order="1070" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ExecutiveAgreementsWithElissaJShaneMember" xlink:label="loc_tomzExecutiveAgreementsWithElissaJShaneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzExecutiveAgreementsWithElissaJShaneMember" order="1051" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CommitteeChairpersonMember" xlink:label="loc_tomzCommitteeChairpersonMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_tomzCommitteeChairpersonMember" order="1052" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_MrVanstonMember" xlink:label="loc_tomzMrVanstonMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapRelatedPartyTransactionDomain" xlink:to="loc_tomzMrVanstonMember" order="1053" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalariesAndWages" xlink:label="loc_us-gaapSalariesAndWages" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapSalariesAndWages" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DiscretionaryBonus" xlink:label="loc_tomzDiscretionaryBonus" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzDiscretionaryBonus" order="2" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross" xlink:label="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStockIssuedDuringPeriodSharesRestrictedStockAwardGross" order="3" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AdditionalRestrictedStockGranted" xlink:label="loc_tomzAdditionalRestrictedStockGranted" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzAdditionalRestrictedStockGranted" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForManagementFee" xlink:label="loc_us-gaapPaymentForManagementFee" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapPaymentForManagementFee" order="5" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="995044 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/AccruedWarrantyDetails" xlink:title="995045 - Disclosure - ACCRUED WARRANTY (Details)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/IncomeTaxesDetailsNarrative" xlink:title="995046 - Disclosure - INCOME TAXES (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/CustomerConcentrationDetailsNarrative" xlink:title="995047 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="loc_srtMajorCustomersAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtMajorCustomersAxis" order="1010" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="loc_srtNameOfMajorCustomerDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtMajorCustomersAxis" xlink:to="loc_srtNameOfMajorCustomerDomain_10" order="1030" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="loc_us-gaapConcentrationRiskByBenchmarkAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapConcentrationRiskByBenchmarkAxis" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="loc_us-gaapConcentrationRiskBenchmarkDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapConcentrationRiskByBenchmarkAxis" xlink:to="loc_us-gaapConcentrationRiskBenchmarkDomain_10" order="1050" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain_10" order="1060" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_TwoCustomersMember" xlink:label="loc_tomzTwoCustomersMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtNameOfMajorCustomerDomain" xlink:to="loc_tomzTwoCustomersMember" order="1041" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="loc_us-gaapAccountsReceivableMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapConcentrationRiskBenchmarkDomain" xlink:to="loc_us-gaapAccountsReceivableMember" order="1042" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CustomerListsOneMember" xlink:label="loc_tomzCustomerListsOneMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapFiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="loc_tomzCustomerListsOneMember" order="1043" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_RevenueConcentrationRiskPercentage" xlink:label="loc_tomzRevenueConcentrationRiskPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzRevenueConcentrationRiskPercentage" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_AccountsReceivableConcentrationRiskPercentage" xlink:label="loc_tomzAccountsReceivableConcentrationRiskPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzAccountsReceivableConcentrationRiskPercentage" order="2" />
  </link:definitionLink>
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative" xlink:title="995048 - Disclosure - EMPLOYEE RETENTION CREDITS (Details Narrative)" />
  <link:definitionLink xlink:type="extended" xlink:role="http://tomz.com/role/SubsequentEventsDetailsNarrative" xlink:title="995049 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)">
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="loc_us-gaapStatementLineItems" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="loc_us-gaapStatementTable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapStatementTable" order="2000" xbrldt:contextElement="segment" xbrldt:closed="true" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="loc_us-gaapSubsequentEventTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapSubsequentEventTypeAxis" order="1020" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapSubsequentEventTypeAxis" xlink:to="loc_us-gaapSubsequentEventTypeDomain" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="loc_us-gaapSubsequentEventTypeDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapSubsequentEventTypeAxis" xlink:to="loc_us-gaapSubsequentEventTypeDomain_10" order="1040" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="loc_us-gaapAwardTypeAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapAwardTypeAxis" order="1030" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapAwardTypeAxis" xlink:to="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_10" order="1050" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualAxis" xlink:label="loc_srtTitleOfIndividualAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_srtTitleOfIndividualAxis" order="1040" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srtTitleOfIndividualAxis" xlink:to="loc_srtTitleOfIndividualWithRelationshipToEntityDomain_10" order="1060" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="loc_us-gaapPlanNameAxis" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaapStatementTable" xlink:to="loc_us-gaapPlanNameAxis" order="1050" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain" order="1060" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="loc_us-gaapPlanNameDomain_10" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaapPlanNameAxis" xlink:to="loc_us-gaapPlanNameDomain_10" order="1070" xbrldt:contextElement="segment" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="loc_us-gaapSubsequentEventMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapSubsequentEventTypeDomain" xlink:to="loc_us-gaapSubsequentEventMember" order="1051" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_NonEmployeeDirectorMember" xlink:label="loc_tomzNonEmployeeDirectorMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_tomzNonEmployeeDirectorMember" order="1052" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ChiefFinancialOfficerMember" xlink:label="loc_srtChiefFinancialOfficerMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srtTitleOfIndividualWithRelationshipToEntityDomain" xlink:to="loc_srtChiefFinancialOfficerMember" order="1053" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityPurchaseAgreementMember" xlink:label="loc_tomzEquityPurchaseAgreementMember" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapPlanNameDomain" xlink:to="loc_tomzEquityPurchaseAgreementMember" order="1054" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_CommonStockIsuable" xlink:label="loc_tomzCommonStockIsuable" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzCommonStockIsuable" order="1" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_ExcessInCommonStockPercentage" xlink:label="loc_tomzExcessInCommonStockPercentage" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzExcessInCommonStockPercentage" order="2" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" xlink:label="loc_tomzEquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzEquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock" order="3" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockNoParValue" xlink:label="loc_us-gaapCommonStockNoParValue" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapCommonStockNoParValue" order="4" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="5" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DirectorFees" xlink:label="loc_tomzDirectorFees" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzDirectorFees" order="6" />
    <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_us-gaapShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" order="7" />
    <link:loc xlink:type="locator" xlink:href="tomz-20250930.xsd#tomz_DescriptionOfVestingRestricatedStockUnits" xlink:label="loc_tomzDescriptionOfVestingRestricatedStockUnits" />
    <link:definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaapStatementLineItems" xlink:to="loc_tomzDescriptionOfVestingRestricatedStockUnits" order="8" />
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>11
<FILENAME>tomz_10qimg2.jpg
<TEXT>
begin 644 tomz_10qimg2.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  4$! 0$ P4$! 0&!04&" T(" <'
M"! +# D-$Q 4$Q(0$A(4%QT9%!8<%A(2&B,:'!X?(2$A%!DD)R0@)AT@(2#_
MVP!# 04&!@@'" \(" \@%1(5(" @(" @(" @(" @(" @(" @(" @(" @(" @
M(" @(" @(" @(" @(" @(" @(" @("#_P  1"  I #4# 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#Z^J&[O+73
M[*:^OKJ*UM8$,DLTSA$C4=68G@"IJ^:_VG/%%G<W'A7X5R:Q!I4&MW276K7<
M\@1+>T5L#<?<AC]4'K0!Z)>?M!_!FQQYWC^PDSG'D)+-_P"@J<5B1_M2?!F;
M4(K9?$5RHD<)Y[V,JQI[L2,@>^*AT_4?V6=&CC6QN? J[%"!V6&1R ,<D@DG
MW-<Q\:/'7P:U+X'^(=!\,Z]X=EOY84^RVUBB!BPE5L+M7@X!H ^EH98[F!)H
M9%DBD4.CH<JRD9!![@BG5P7P>\1:7XD^$OAJ:PU*WOYK73K>WNA"X9H9EC 9
M''52,=Z[[!'44 )1110!RWQ"U.^T7X7>*M8TNX-M?6.EW%Q;S!0QCD6,E6P<
M@X([U^>.FZUI?CW5/$GB+XG:M=ZEK7V5);5O.\D3LG!CPJ$#Y0 ,8 R3@\U^
MFS*LB,DBJZ,,%6&01[BODK]I/X"ZAJUU??$;PFBS-'!"EQI%K:DRRE3L,D>P
M<_*02,=%)SVH)/*[3P[\";BT,UUJEW9B62>.!1J&]\B3$)(\O@%/F).,'@]*
MYG5/#OPO@FM5T?7[R_0Q()V,B1[)%4B0X8#*,^&7;DXX(YR/.;[2=3TQRFI:
M7=V3=Q<0-&?_ !X"J?RGT-4!WM]-8^&=/N9/#NH7%O=2B)!):Z@P93\V[=L.
M&R,$=,!B*]7_ &0KR\N/C1J2SWD\JG1IB1)(S GS(^>37=?LY_ [X?>(OA9:
M^,/%&DG6[[4GE017#LL5NJ.R?*JD9)QG)SVQC%>]>#/A%\//A_JT^K>$?#RZ
M=>SPFW>4SR2DH2"0-[''('3TH [JBBBI*"EZ'BDHH ;-'%<Q&*YB2>,]4D4,
M#^!KCM4^$_PQUG)U+P#H4S$8WK9)&WYJ :[.B@#+\/\ AW1/"NA6^A>'=/CT
:[3+?<8K>+)5=S%CU)/))-:E%% !1110!_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover - shares<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Nov. 12, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">TOMI ENVIRONMENTAL SOLUTIONS, INC.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000314227<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Sep. 30,  2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">Q3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">20,225,205<span></span>
</td>
</tr>
<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">000-09908<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 Country Code</a></td>
<td class="text">FL<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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">59-1947988<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 1</a></td>
<td class="text">8430 Spires Way<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressCityOrTown', window );">Entity Address City Or Town</a></td>
<td class="text">Frederick<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_EntityAddressStateOrProvince', window );">Entity Address State Or Province</a></td>
<td class="text">MD<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressPostalZipCode', window );">Entity Address Postal Zip Code</a></td>
<td class="text">21701<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_CityAreaCode', window );">City Area Code</a></td>
<td class="text">800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">525-1698<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_Security12bTitle', window );">Security 12b Title</a></td>
<td class="text">Common stock, par value $0.01 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">TOMZ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 308<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and Cash Equivalents</a></td>
<td class="nump">$ 490,022<span></span>
</td>
<td class="nump">$ 664,879<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">619,965<span></span>
</td>
<td class="nump">1,881,138<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_tomz_InventoryCurrent', window );">Inventories - net (Note 3)</a></td>
<td class="nump">3,364,260<span></span>
</td>
<td class="nump">3,578,202<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepositsAssetsCurrent', window );">Vendor Deposits (Note 4)</a></td>
<td class="nump">222,065<span></span>
</td>
<td class="nump">35,895<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseCurrent', window );">Prepaid Expenses</a></td>
<td class="nump">333,997<span></span>
</td>
<td class="nump">332,999<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">5,030,309<span></span>
</td>
<td class="nump">6,493,113<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and Equipment - net (Note 5)</a></td>
<td class="nump">678,528<span></span>
</td>
<td class="nump">875,449<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsAbstract', window );"><strong>Other 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_IntangibleAssetsNetExcludingGoodwill', window );">Intangible Assets - net (Note 6)</a></td>
<td class="nump">1,359,205<span></span>
</td>
<td class="nump">1,250,574<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease - Right of Use Asset (Note - 7)</a></td>
<td class="nump">342,229<span></span>
</td>
<td class="nump">399,254<span></span>
</td>
</tr>
<tr class="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 Assets</a></td>
<td class="nump">634,920<span></span>
</td>
<td class="nump">675,348<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssets', window );">Total Other Assets</a></td>
<td class="nump">2,336,354<span></span>
</td>
<td class="nump">2,325,176<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_Assets', window );">Total Assets</a></td>
<td class="nump">8,045,191<span></span>
</td>
<td class="nump">9,693,738<span></span>
</td>
</tr>
<tr class="re">
<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="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">1,258,483<span></span>
</td>
<td class="nump">1,924,379<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Accrued Expenses and Other Current Liabilities (Notes 13 and 14)</a></td>
<td class="nump">828,723<span></span>
</td>
<td class="nump">455,675<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueCurrent', window );">Deferred Revenue</a></td>
<td class="nump">309,752<span></span>
</td>
<td class="nump">211,724<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Current Portion of Long-Term Operating Lease (Note 7)</a></td>
<td class="nump">139,917<span></span>
</td>
<td class="nump">129,132<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">2,536,875<span></span>
</td>
<td class="nump">2,720,910<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesNoncurrentAbstract', window );"><strong>Long-Term Liabilities:</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_OperatingLeaseLiabilityNoncurrent', window );">Long-Term Operating Lease, Net of Current Portion (Note 7)</a></td>
<td class="nump">407,781<span></span>
</td>
<td class="nump">513,395<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConvertibleLongTermNotesPayable', window );">Convertible Notes Payable, net of discount of $240,947 and $239,506 at September 30, 2025 and December 31, 2024, respectively (Note 9)</a></td>
<td class="nump">2,894,053<span></span>
</td>
<td class="nump">2,360,494<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 Long-Term Liabilities</a></td>
<td class="nump">3,301,834<span></span>
</td>
<td class="nump">2,873,889<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">5,838,709<span></span>
</td>
<td class="nump">5,594,799<span></span>
</td>
</tr>
<tr class="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 (Notes 7, 9 and 11)</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_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_CommonStockValue', window );">Common stock; par value $0.01 per share, 250,000,000 shares authorized; 20,075,205 and 20,015,205 shares issued and outstanding at September 30, 2025 and December 31, 2024, respectively</a></td>
<td class="nump">200,752<span></span>
</td>
<td class="nump">200,152<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapital', window );">Additional Paid-In Capital</a></td>
<td class="nump">58,251,540<span></span>
</td>
<td class="nump">58,201,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_RetainedEarningsAccumulatedDeficit', window );">Accumulated Deficit</a></td>
<td class="num">(56,246,448)<span></span>
</td>
<td class="num">(54,302,991)<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_StockholdersEquity', window );">Total Shareholders' Equity</a></td>
<td class="nump">2,206,482<span></span>
</td>
<td class="nump">4,098,939<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_LiabilitiesAndStockholdersEquity', window );">Total Liabilities and Shareholders' Equity</a></td>
<td class="nump">8,045,191<span></span>
</td>
<td class="nump">9,693,738<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_SeriesBPreferredStockMember', window );">Convertible Series B Preferred Stock</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_PreferredStockValue', window );">Preferred Stock Value</a></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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Convertible Series A Preferred Stock</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 Value</a></td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_InventoryCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_InventoryCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapital">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.</p></div>
<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/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-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)(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_AdditionalPaidInCapital</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConvertibleLongTermNotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 long-term debt (with maturities initially due after one year or beyond the operating cycle if longer) identified as Convertible Notes Payable, excluding current portion. Convertible Notes Payable is a written promise to pay a note which can be exchanged for a specified amount of another, related security, at the option of the issuer and the holder.</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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConvertibleLongTermNotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DeferredRevenueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and obligation to transfer product and 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/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DepositsAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment within one year or during the operating cycle, if shorter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepositsAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 31: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://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 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(26))<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(23))<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 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 15: 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 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)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<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 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 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)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<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)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: 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 25: 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_LiabilitiesNoncurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LiabilitiesNoncurrentAbstract</td>
</tr>
<tr>
<td style="padding-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_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_OtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 3: 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 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><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 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(10))<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 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_OtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OtherAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherAssetsAbstract</td>
</tr>
<tr>
<td style="padding-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_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_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://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(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_PrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits 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)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-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(7))<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 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482955/340-10-05-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483032/340-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SeriesBPreferredStockMember</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_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>15
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentUnamortizedDiscount', window );">Debt discount on convertible notes payable</a></td>
<td class="nump">$ 240,947<span></span>
</td>
<td class="nump">$ 239,506<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common Stock, Par Value</a></td>
<td class="nump">$ 0.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</a></td>
<td class="nump">250,000,000<span></span>
</td>
<td class="nump">250,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common Stock, Shares Issued</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common Stock, Shares Outstanding</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,015,205<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_SeriesBPreferredStockMember', window );">Convertible Series B Preferred Stock</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 );">Cumulative Convertible Preferred Stock, Par Value</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,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_PreferredStockSharesAuthorized', window );">Cumulative Convertible Preferred Stock, shares authorized</a></td>
<td class="nump">4,000<span></span>
</td>
<td class="nump">4,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 );">Cumulative Convertible Preferred Stock, shares issued</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 );">Cumulative Convertible Preferred Stock, Shares outstanding</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_tomz_CumulativeDividendPercenatge', window );">Cumulative Dividend Percenatge</a></td>
<td class="nump">7.50%<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_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Convertible Series A Preferred Stock</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 );">Cumulative Convertible Preferred Stock, Par Value</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 );">Cumulative Convertible Preferred Stock, shares authorized</a></td>
<td class="nump">1,000,000<span></span>
</td>
<td class="nump">1,000,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 );">Cumulative Convertible Preferred Stock, shares issued</a></td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
</tr>
<tr class="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 );">Cumulative Convertible Preferred Stock, Shares outstanding</a></td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CumulativeDividendPercenatge">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CumulativeDividendPercenatge</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_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_DebtInstrumentUnamortizedDiscount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization, 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/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-1A<br><br>Reference 2: 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 3: 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><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1D<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentUnamortizedDiscount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SeriesBPreferredStockMember</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_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>16
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Sales, net</a></td>
<td class="nump">$ 2,011,556<span></span>
</td>
<td class="nump">$ 2,542,251<span></span>
</td>
<td class="nump">$ 4,619,229<span></span>
</td>
<td class="nump">$ 6,669,730<span></span>
</td>
</tr>
<tr class="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">779,585<span></span>
</td>
<td class="nump">981,124<span></span>
</td>
<td class="nump">1,758,389<span></span>
</td>
<td class="nump">2,583,419<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">1,231,971<span></span>
</td>
<td class="nump">1,561,127<span></span>
</td>
<td class="nump">2,860,840<span></span>
</td>
<td class="nump">4,086,311<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostsAndExpensesAbstract', window );"><strong>Operating Expenses:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfessionalFees', window );">Professional Fees</a></td>
<td class="nump">185,476<span></span>
</td>
<td class="nump">104,941<span></span>
</td>
<td class="nump">588,666<span></span>
</td>
<td class="nump">387,267<span></span>
</td>
</tr>
<tr class="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">68,588<span></span>
</td>
<td class="nump">69,909<span></span>
</td>
<td class="nump">206,368<span></span>
</td>
<td class="nump">224,384<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingExpense', window );">Selling Expenses</a></td>
<td class="nump">143,599<span></span>
</td>
<td class="nump">226,593<span></span>
</td>
<td class="nump">630,467<span></span>
</td>
<td class="nump">881,927<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and Development</a></td>
<td class="nump">10,694<span></span>
</td>
<td class="nump">56,338<span></span>
</td>
<td class="nump">139,380<span></span>
</td>
<td class="nump">185,923<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LegalFees', window );">Consulting Fees</a></td>
<td class="nump">72,623<span></span>
</td>
<td class="nump">44,338<span></span>
</td>
<td class="nump">238,487<span></span>
</td>
<td class="nump">181,068<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and Administrative</a></td>
<td class="nump">1,072,406<span></span>
</td>
<td class="nump">909,906<span></span>
</td>
<td class="nump">3,266,041<span></span>
</td>
<td class="nump">3,181,304<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_OperatingExpenses', window );">Total Operating Expenses</a></td>
<td class="nump">1,553,386<span></span>
</td>
<td class="nump">1,412,025<span></span>
</td>
<td class="nump">5,069,409<span></span>
</td>
<td class="nump">5,041,873<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 );">Income (loss) from Operations</a></td>
<td class="num">(321,415)<span></span>
</td>
<td class="nump">149,102<span></span>
</td>
<td class="num">(2,208,569)<span></span>
</td>
<td class="num">(955,562)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpenseAbstract', window );"><strong>Other Income (Expense):</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherIncome', window );">Other Income (Note 18)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">534,912<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_InterestIncomeOperating', window );">Interest Income, Operating</a></td>
<td class="nump">1,406<span></span>
</td>
<td class="nump">3,480<span></span>
</td>
<td class="nump">85,717<span></span>
</td>
<td class="nump">15,231<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest Expense</a></td>
<td class="num">(130,339)<span></span>
</td>
<td class="num">(93,620)<span></span>
</td>
<td class="num">(355,517)<span></span>
</td>
<td class="num">(280,699)<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_OtherNonoperatingIncomeExpense', window );">Total Other Income (Expense)</a></td>
<td class="num">(128,933)<span></span>
</td>
<td class="num">(90,140)<span></span>
</td>
<td class="nump">265,112<span></span>
</td>
<td class="num">(265,468)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income (loss) before income taxes</a></td>
<td class="num">(450,348)<span></span>
</td>
<td class="nump">58,962<span></span>
</td>
<td class="num">(1,943,457)<span></span>
</td>
<td class="num">(1,221,030)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for Income Taxes (Note 15)</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>
</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 income (loss)</a></td>
<td class="num">$ (450,348)<span></span>
</td>
<td class="nump">$ 58,962<span></span>
</td>
<td class="num">$ (1,943,457)<span></span>
</td>
<td class="num">$ (1,221,030)<span></span>
</td>
</tr>
<tr class="ro">
<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 income (loss) 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>
</tr>
<tr class="re">
<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</a></td>
<td class="num">$ (0.02)<span></span>
</td>
<td class="nump">$ 0.00<span></span>
</td>
<td class="num">$ (0.10)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
</tr>
<tr class="ro">
<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</a></td>
<td class="num">$ (0.02)<span></span>
</td>
<td class="nump">$ 0.00<span></span>
</td>
<td class="num">$ (0.10)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
</tr>
<tr class="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 Weighted Average Common Shares Outstanding</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
<td class="nump">20,046,195<span></span>
</td>
<td class="nump">19,984,179<span></span>
</td>
</tr>
<tr class="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 Weighted Average Common Shares Outstanding</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,096,751<span></span>
</td>
<td class="nump">20,046,195<span></span>
</td>
<td class="nump">19,984,179<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/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostsAndExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_CostsAndExpensesAbstract</td>
</tr>
<tr>
<td style="padding-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_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_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 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 operating and nonoperating. Includes, but is not limited to, cost of borrowing accounted for as interest 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 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/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/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 4: 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 5: 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 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-24<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<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/2147483013/835-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-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_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_InterestIncomeOperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 interest income, including, but not limited to, amortization and accretion of premiums and discounts on securities.</p></div>
<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 942<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479255/942-310-S50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.H.2.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478116/942-310-S99-2<br><br>Reference 4: 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(1)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<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 22<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<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 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 39<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477346/946-830-45-39<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(1)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(Footnote 6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-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_InterestIncomeOperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LegalFees">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 provided in the period for legal costs incurred on or before the balance sheet date pertaining to resolved, pending or threatened litigation, including arbitration and mediation proceedings.</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 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (k)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-3<br><br>Reference 2: 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(2)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(6))<br> -SubTopic 10<br> -Topic 220<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_LegalFees</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and income 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 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(Footnote 6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<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(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-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(1)(c))<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_OtherIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OtherNonoperatingIncomeExpenseAbstract</td>
</tr>
<tr>
<td style="padding-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_ProfessionalFees">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fee charged for services from professionals such as doctors, lawyers and accountants. The term is often expanded to include other professions, for example, pharmacists charging to maintain a medicinal profile of a client or 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/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (k)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-3<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 1<br> -Subparagraph (SX 210.6-07(2)(b))<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_ProfessionalFees</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expenses recognized in the period that are directly related to the selling and distribution of products or 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/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-25<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-19<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-12<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 35<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-35<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>17
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED) - USD ($)<br></strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Series A Preferred Stock</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Additional Paid-In Capital</div></th>
<th class="th"><div>Retained Earnings (Accumulated Deficit)</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_SharesIssued', window );">Balance, shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">19,923,955<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2023</a></td>
<td class="nump">$ 8,358,894<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 199,240<span></span>
</td>
<td class="nump">$ 57,985,245<span></span>
</td>
<td class="num">$ (49,826,229)<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_tomz_OptionsExercisedShares', window );">Options Exercised, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,250<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_tomz_OptionsExercisedAmount', window );">Options Exercised, amount</a></td>
<td class="nump">27,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 312<span></span>
</td>
<td class="nump">27,188<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_StockIssuedDuringPeriodSharesIssuedForServices', window );">Common Stock Issued for Services Provided, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60,000<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_StockIssuedDuringPeriodValueIssuedForServices', window );">Common Stock Issued for Services Provided, amount</a></td>
<td class="nump">45,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="nump">44,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Equity Compensation</a></td>
<td class="nump">144,307<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">144,307<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">(1,221,030)<span></span>
</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,221,030)<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_SharesIssued', window );">Balance, shares at Sep. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Sep. 30, 2024</a></td>
<td class="nump">7,354,671<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,152<span></span>
</td>
<td class="nump">58,201,140<span></span>
</td>
<td class="num">(51,047,259)<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_SharesIssued', window );">Balance, shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Jun. 30, 2024</a></td>
<td class="nump">7,295,709<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,152<span></span>
</td>
<td class="nump">58,201,140<span></span>
</td>
<td class="num">(51,106,221)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="nump">58,962<span></span>
</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">58,962<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_SharesIssued', window );">Balance, shares at Sep. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Sep. 30, 2024</a></td>
<td class="nump">7,354,671<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,152<span></span>
</td>
<td class="nump">58,201,140<span></span>
</td>
<td class="num">(51,047,259)<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_SharesIssued', window );">Balance, shares at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Dec. 31, 2024</a></td>
<td class="nump">4,098,939<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,152<span></span>
</td>
<td class="nump">58,201,140<span></span>
</td>
<td class="num">(54,302,991)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesIssuedForServices', window );">Common Stock Issued for Services Provided, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60,000<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_StockIssuedDuringPeriodValueIssuedForServices', window );">Common Stock Issued for Services Provided, amount</a></td>
<td class="nump">51,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="nump">50,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">(1,943,457)<span></span>
</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,943,457)<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_SharesIssued', window );">Balance, shares at Sep. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,075,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Sep. 30, 2025</a></td>
<td class="nump">2,206,482<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,752<span></span>
</td>
<td class="nump">58,251,540<span></span>
</td>
<td class="num">(56,246,448)<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_SharesIssued', window );">Balance, shares at Jun. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,075,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Jun. 30, 2025</a></td>
<td class="nump">2,656,830<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,752<span></span>
</td>
<td class="nump">58,251,540<span></span>
</td>
<td class="num">(55,796,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_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">(450,348)<span></span>
</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">(450,348)<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_SharesIssued', window );">Balance, shares at Sep. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">20,075,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance, amount at Sep. 30, 2025</a></td>
<td class="nump">$ 2,206,482<span></span>
</td>
<td class="nump">$ 638<span></span>
</td>
<td class="nump">$ 200,752<span></span>
</td>
<td class="nump">$ 58,251,540<span></span>
</td>
<td class="num">$ (56,246,448)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_OptionsExercisedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OptionsExercisedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_OptionsExercisedShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OptionsExercisedShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now 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> -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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesIssued</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodSharesIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders.</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_StockIssuedDuringPeriodSharesIssuedForServices</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodValueIssuedForServices">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 in lieu of cash for services contributed to the entity. Value of the stock issued includes, but is not limited to, services contributed by vendors and founders.</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_StockIssuedDuringPeriodValueIssuedForServices</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash Flow From Operating Activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Net (Loss)</a></td>
<td class="num">$ (1,943,457)<span></span>
</td>
<td class="num">$ (1,221,030)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to Reconcile Net (Loss) to Net Cash (Used) In Operating Activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationAndAmortization', window );">Depreciation and Amortization</a></td>
<td class="nump">206,368<span></span>
</td>
<td class="nump">224,384<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense', window );">Amortization of Right of Use Asset</a></td>
<td class="nump">117,986<span></span>
</td>
<td class="nump">117,986<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfFinancingCosts', window );">Amortization of Deferred Financing Costs</a></td>
<td class="nump">52,617<span></span>
</td>
<td class="nump">46,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_ShareBasedCompensation', window );">Equity Compensation Expense</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">144,307<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims', window );">Value of Equity Issued for Services</a></td>
<td class="nump">51,000<span></span>
</td>
<td class="nump">45,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_ProvisionForDoubtfulAccounts', window );">Credit Loss Expense</a></td>
<td class="nump">197,639<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_InventoryLIFOReserveEffectOnIncomeNet', window );">Inventory Reserve</a></td>
<td class="num">(232,275)<span></span>
</td>
<td class="nump">0<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_tomz_AllowanceOnSalesReturns', window );">Sales Returns Allowance</a></td>
<td class="num">(61,828)<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_IncreaseDecreaseInOperatingAssetsAbstract', window );"><strong>Decrease (Increase) in:</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">1,003,569<span></span>
</td>
<td class="num">(716,462)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventory</a></td>
<td class="nump">431,820<span></span>
</td>
<td class="nump">46,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_IncreaseDecreaseInPrepaidExpense', window );">Prepaid Expenses</a></td>
<td class="nump">6,578<span></span>
</td>
<td class="nump">25,455<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDepositOtherAssets', window );">Vendor Deposits</a></td>
<td class="num">(186,170)<span></span>
</td>
<td class="num">(68,153)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherCurrentAssets', window );">Other Assets</a></td>
<td class="nump">40,428<span></span>
</td>
<td class="num">(121,888)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract', window );"><strong>Increase (Decrease) in:</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_IncreaseDecreaseInAccountsPayable', window );">Accounts Payable</a></td>
<td class="num">(510,970)<span></span>
</td>
<td class="nump">285,194<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued Expenses</a></td>
<td class="nump">319,934<span></span>
</td>
<td class="num">(137,982)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredRevenue', window );">Deferred Revenue</a></td>
<td class="nump">56,376<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_IncreaseDecreaseInOperatingLeaseLiability', window );">Lease Liability</a></td>
<td class="num">(126,395)<span></span>
</td>
<td class="num">(123,521)<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_NetCashProvidedByUsedInOperatingActivities', window );">Net Cash (Used) in Operating Activities</a></td>
<td class="num">(576,780)<span></span>
</td>
<td class="num">(1,452,862)<span></span>
</td>
</tr>
<tr class="ro">
<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 Flow From Investing 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_PaymentsToAcquireIntangibleAssets', window );">Capitalized Patent and Trademark Costs</a></td>
<td class="num">(130,412)<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_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchase of Property and Equipment</a></td>
<td class="num">(2,665)<span></span>
</td>
<td class="num">(104,660)<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">(133,077)<span></span>
</td>
<td class="num">(104,660)<span></span>
</td>
</tr>
<tr class="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 Flow 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_ProceedsFromConvertibleDebt', window );">Proceeds from Issuance of Convertible Notes</a></td>
<td class="nump">535,000<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_ProceedsFromStockOptionsExercised', window );">Proceeds from Exercise of Options</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">27,500<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net Cash Provided By Financing Activities</a></td>
<td class="nump">535,000<span></span>
</td>
<td class="nump">27,500<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect', window );">(Decrease) In Cash and Cash Equivalents</a></td>
<td class="num">(174,857)<span></span>
</td>
<td class="num">(1,530,022)<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">664,879<span></span>
</td>
<td class="nump">2,339,059<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and Cash Equivalents - Ending</a></td>
<td class="nump">490,022<span></span>
</td>
<td class="nump">809,037<span></span>
</td>
</tr>
<tr class="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 );">Cash Paid for Interest</a></td>
<td class="nump">309,314<span></span>
</td>
<td class="nump">222,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_NoncashInvestingAndFinancingItemsAbstract', window );"><strong>Non-Cash Investing and Financing Activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts', window );">Service equipment reclassified from inventory to fixed assets</a></td>
<td class="nump">$ 14,397<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_tomz_AllowanceOnSalesReturns">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AllowanceOnSalesReturns</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense attributable to debt issuance 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(8))<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 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 3: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-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_AmortizationOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 expenses incurred but not yet paid.</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_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncreaseDecreaseInDeferredRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<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_IncreaseDecreaseInDeferredRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncreaseDecreaseInDepositOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 moneys or securities given as security including, but not limited to, contract, escrow, or earnest money deposits, retainage (if applicable), deposits with clearing organizations and others, collateral, or margin deposits.</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_IncreaseDecreaseInDepositOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_IncreaseDecreaseInOperatingAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncreaseDecreaseInOperatingAssetsAbstract</td>
</tr>
<tr>
<td style="padding-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_IncreaseDecreaseInOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation 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/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -SubTopic 20<br> -Topic 842<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_IncreaseDecreaseInOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncreaseDecreaseInOperatingLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncreaseDecreaseInOperatingLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_IncreaseDecreaseInOtherCurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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/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_IncreaseDecreaseInOtherCurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncreaseDecreaseInPrepaidExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of outstanding money paid in advance for goods or services that bring economic benefits for 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_IncreaseDecreaseInPrepaidExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_InventoryLIFOReserveEffectOnIncomeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 change in the inventory reserve representing the cumulative difference in cost between the first in, first out and the last in, first out inventory valuation methods and any LIFO decrement which have been reflected in the statement of income 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;">us-gaap_InventoryLIFOReserveEffectOnIncomeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IssuanceOfStockAndWarrantsForServicesOrClaims">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of share-based compensation granted to nonemployees as payment for services rendered or acknowledged claims.</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_IssuanceOfStockAndWarrantsForServicesOrClaims</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncashInvestingAndFinancingItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NoncashInvestingAndFinancingItemsAbstract</td>
</tr>
<tr>
<td style="padding-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_OperatingLeaseRightOfUseAssetAmortizationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 periodic reduction over lease term of carrying amount of right-of-use asset 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/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<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_OperatingLeaseRightOfUseAssetAmortizationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsToAcquireIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill.</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_PaymentsToAcquireIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ProceedsFromConvertibleDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 inflow from the issuance of a long-term debt instrument which can be exchanged for a specified amount of another security, typically the entity's common stock, at the option of the issuer or the holder.</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 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_ProceedsFromConvertibleDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 37: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4J<br><br>Reference 38: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4K<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-2<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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>
<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>19
<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.3</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 Arragements<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_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 Arragement Adopted [Flag]</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_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arragement Treatment [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_ecd_NonRule10b51ArrAdoptedFlag', window );">Non Rule 10b5-1 Arragement Adopted [Flag]</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 Arragement Treatment [Flag]</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>20
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>DESCRIPTION OF BUSINESS</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_BusinessDescriptionAndBasisOfPresentationTextBlock', window );">DESCRIPTION OF BUSINESS</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 1. DESCRIPTION OF BUSINESS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">TOMI Environmental Solutions, Inc., a Florida corporation (&#8220;TOMI&#8221;, the &#8220;Company&#8221;, &#8220;we&#8221;, &#8220;our&#8221; and &#8220;us&#8221;) is a global provider of disinfection and decontamination essentials through our premier Binary Ionization Technology&#174; (BIT&#8482;) platform, under which we manufacture, license, service and sell our SteraMist&#174; brand of products, including SteraMist&#174; BIT&#8482;, a hydrogen peroxide-based mist and fog. Our solution and process are environmentally friendly as the only product from our decontamination process is oxygen and water in the form of humidity. Our solution is organically listed in the United States and Canada as a sustainably green product with no or very little carbon footprint. Our business is organized into four divisions: Life Sciences, Hospital Healthcare, Food Safety and Commercial.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Invented under a defense grant in association with the Defense Advanced Research Projects Agency (&#8220;DARPA&#8221;) of the U.S. Department of Defense, BIT&#8482; is registered with the U.S. Environmental Protection Agency (the &#8220;EPA&#8221;) and uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (<strong><sup style="vertical-align:super">.</sup></strong>OH ion), known as ionized Hydrogen Peroxide (iHP&#8482;). Represented by the SteraMist&#174; brand of products, iHP&#8482; produces a germ-killing aerosol that works like a visual non-caustic gas.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our products are designed to service a broad spectrum of commercial structures, including, but not limited to, hospitals and medical facilities, bio-safety labs, pharmaceutical facilities, meat and produce processing facilities, food security including storage and transportation, universities and research facilities, vivarium labs, other service industries including cruise ships, office buildings, hotel and motel rooms, schools, restaurants, military barracks, police and fire departments, prisons, and athletic facilities. Our products are also used in single-family homes and multi-unit residences. Additionally, our products have been listed on EPA&#8217;s List N as products that help combat COVID-19 and are actively being used for this purpose.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. 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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 205<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/205/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock</td>
</tr>
<tr>
<td style="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_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Basis of Presentation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The interim unaudited condensed consolidated financial statements included herein, presented in accordance with generally accepted accounting principles in the United States of America (GAAP), and stated in U.S. dollars, have been prepared by us, without an audit, pursuant to the rules and regulations of the U.S. Securities and Exchange Commission (the &#8220;SEC&#8221;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations, although we believe that the disclosures are adequate to make the information presented not misleading.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">These financial statements reflect all adjustments, consisting of normal recurring adjustments, which, in the opinion of management, are necessary for fair presentation of the information contained therein. These unaudited condensed consolidated financial statements should be read in conjunction with our audited financial statements for the year ended December 31, 2024, and notes thereto which are included in the annual report on Form 10-K previously filed with the SEC on April 14, 2025, as amended (the &#8220;Annual Report&#8221;). We follow the same accounting policies in the preparation of interim reports. The results of operations for the interim periods covered by this Form 10-Q may not necessarily be indicative of results of operations for the full fiscal year or any other interim period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Principles of Consolidation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The accompanying condensed consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Reclassification of Accounts</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em></em></strong>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Use of Estimates</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The preparation of the condensed consolidated financial statements in conformity with GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to allowance for credit losses, inventory, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Fair Value Measurements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of input, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Cash and Cash Equivalents</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be more than insured limits. At September 30, 2025, and December 31, 2024, there were no cash equivalents.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Accounts Receivable</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accounts receivables are stated at the amount management expects to collect from outstanding balances. The Company generally does not require collateral to support customer receivables. Management assesses the collectability of outstanding customer invoices and maintains an allowance resulting from the expected non-collection of customer receivables. In estimating this reserve, management considers factors such as industry sector, historical collection experience, customer creditworthiness, specific customer risk, and current and expected general economic conditions. For those customers to whom we extend credit, in accordance with the Current Expected Credit Loss (CECL) model, we make a risk-based evaluation at the point of sale which is further reviewed on both an individual and collective (pool) basis during each reporting period based on ASC 326. We are required to estimate and report expected credit losses over the entire life of a financial asset, considering historical data, current conditions, and future forecasts, even if the risk of loss is remote. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have implemented a policy of reserving credit losses based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be at risk. Our allowance for credit losses was as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">2,229,977</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">1,494,347</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Credit loss expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">197,639</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,050,543</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustment for uncollectible accounts</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(1,236,069</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(314,913</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">1,191,547</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,229,977</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Inventories</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials. We expense certification costs to cost of goods sold as incurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence, and future customer demand. We record an allowance for estimated losses when the facts and circumstances indicate that inventories may not be usable or realized when comparing current inventory levels to anticipated demand for our product.&#160; Our reserve for obsolete inventory was $868,000 and $1,100,000 as of September 30, 2025, and December 31, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Property and Equipment</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation commences for equipment, furniture and fixtures and vehicles, once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the remaining lease term at the time the asset was placed into service or the service lives of the improvements, whichever is shorter.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Leases</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depend upon classification as a finance or operating lease.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have also elected the practical expedient not to separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense in the period in which they are incurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Accounts Payable</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, one vendor accounted for approximately 46% of accounts payable. As of December 31, 2024, one vendor accounted for approximately 60% of accounts payable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September 30, 2025, two vendors accounted for 59% and 50% of cost of sales, respectively. For the three and nine months ended September 30, 2024, two vendors accounted for 53% and 65% of cost of sales, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Accrued Warranties</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results.&#160; As of September 30, 2025, and December 31, 2024, our warranty reserve was $22,648 and $30,000, respectively. (See Note 14).</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Income Taxes</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes.&#160; Net deferred tax assets have been fully reserved as of September 30, 2025, and December 31, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Net Income (Loss) Per Share</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures. The computation of diluted EPS is similar to the computation of basic EPS except that the numerator may have to adjust for any dividends and income or loss associated with potentially dilutive securities that are assumed to have resulted in the issuance of shares of common stock and the denominator may have to adjust to include the number of additional shares of common stock that would have been outstanding if the dilutive potential shares of common stock had been issued during the period to reflect the potential dilution that could occur from shares of common stock issuable through a contingent shares issuance arrangement, stock options, warrants, or convertible preferred stock. For purposes of determining diluted earnings per common share, the treasury stock method is used for stock options, and warrants, and the if-converted method is used for convertible preferred stock and convertible debt as prescribed in FASB ASC Topic 260. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Potentially dilutive securities as of September 30, 2025, consisted of 2,508,000 shares of common stock from convertible debentures, 2,604,388 shares of common stock issuable upon exercise of outstanding warrants, 768,792 shares of common stock issuable upon outstanding stock options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Potentially dilutive securities as of September 30, 2024, consisted of 2,080,000 shares of common stock from convertible debentures, 2,765,846 shares of common stock issuable upon exercise of outstanding warrants, 805,042 shares of common stock issuable upon vesting of stock options and exercise and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Options, warrants, preferred stock and shares associated with the conversion of debt to purchase approximately 5.9 million and 5.7 million shares of common stock were outstanding on September 30, 2025, and 2024, respectively but were excluded from the computation of diluted net loss per share at September 30, 2025 and 2024 due to anti-dilutive effect on net loss per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustments for convertible debt - as converted:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest on convertible debt net of effective tax rate (28%)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,015,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,096,751</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,015,205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,908</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">63,750</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,096,751</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following table sets forth the number of potential shares of common stock that have been excluded from diluted net income (loss) per share because their effect was anti-dilutive:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">768,792</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">573,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,604,388</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,734,596</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,508,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,080,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,881,180</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,387,596</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Note: Warrants, options, convertible debt and preferred stock for the nine months ending September 30, 2025 and 2024, are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em></em></strong>&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Revenue Recognition</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize revenue in accordance with the Financial Accounting Standards Board (FASB) Accounting Standards Codification (&#8220;ASC&#8221;) Topic 606, Revenue from Contracts with Customers. We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above for each distinct performance obligation identified in step (ii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to resale of our products by dealers and distributors. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Disaggregation of Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table presents our approximate revenue disaggregated by revenue source.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,603,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,766,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">409,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">776,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,280,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,886,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">732,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">656,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,255,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,247,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,364,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,423,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,294,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,169,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,325,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,501,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Product revenue includes sales from our standard and customized equipment, solutions and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized when the services agreed upon are rendered to our customers at an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Estimated allowances for sales returns are recorded as sales are recognized. We use a specific identification method based on subsequent product return activity and historical average calculations to estimate the allowance for sales returns. Our allowance for sales returns as of September 30, 2025, was $90,540 and $227,000 at December 31, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Costs to Obtain a Contract with a Customer</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Contract Balances</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, and December 31, 2024, we had contract balances and unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed in the amounts of $309,752 and $211,724, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Arrangements with Multiple Performance Obligations</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Significant Judgments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services. We also record an estimated allowance for anticipated product returns.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Equity Compensation Expense</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation-Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#8211;free interest rates are calculated based on continuously compounded risk&#8211;free rates for the appropriate term. The expected term of the Company&#8217;s warrants has been determined utilizing the &#8220;simplified&#8221; method for awards that qualify as &#8220;plain-vanilla&#8221; warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its common stock, par value $0.01 (the &#8220;Common Stock&#8221;) and does not intend to pay dividends on its Common Stock in the foreseeable future.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On July 7, 2017, our shareholders approved the Company&#8217;s Amended and Restated 2016 Equity Incentive Plan (the amended &#8220;2016 Plan&#8221;). The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of Common Stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of Common Stock for numerous reasons, including, but not limited to, shares of Common Stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. During the nine months ended September<strong> </strong>30, 2025, and 2024, we issued 60,000 and 60,000 shares of Common Stock, respectively, to members of our Board out of the 2016 Plan.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Concentrations of Credit Risk</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Long-Lived Assets Including Acquired Intangible Assets</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the three and nine months ended September 30, 2025, and 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Advertising and Promotional Expenses</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Advertising and promotional costs are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, advertising and promotional expenses included in selling expenses were approximately $24,000 and $88,000, respectively. For the same periods in 2024, these expenses were approximately $35,000 and $192,000, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Research and Development Expenses</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Research and development expenses are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, these expenses were approximately $11,000 and $139,000, respectively. For the same periods in 2024, research and development expenses were approximately $56,000 and $186,000, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Business Segments</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product in which 1) The business activities are homogenous in nature, 2) The entire operation faces similar market conditions and risks, 3) There is a high degree of integration in its operations, 4) Internal evaluations of financial results are conducted on a consolidated basis. A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above. See Note 17, Segment Reporting for more details. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>Going Concern</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the nine months ended September 30, 2025, and 2024, our net loss was approximately $1,943,000 and $1,221,000, respectively, and the cash used in operations was approximately $577,000 and $1,453,000, respectively. As of September 30, 2025, we had approximately $490,000 cash and cash equivalents and an accumulated deficit of $56.2 million. These factors raise substantial doubt about the Company&#8217;s ability to continue as a going concern within one year after the date the financial statements are issued. The Company&#8217;s consolidated financial statements have been prepared on the basis of continuity of operations, realization of assets and satisfaction of liabilities in the ordinary course of business; no adjustments have been made relating to the recoverability and classification of recorded asset amounts and classification of liabilities that might be necessary should the Company not continue as a going concern.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Company intends to fund ongoing activities by utilizing its current cash on hand, the cash generated from operations, and by raising additional capital through equity or debt financings. There can be no assurance that the Company will be successful in raising that additional capital or that such capital, if available, will be on terms that are acceptable to us, as our ability to raise capital may be affected by various factors, including general market conditions, volatility of our stock price, investor interests and expectations, and our financial performance. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Recent Accounting Pronouncements</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In December 2023, FASB issued ASU No. 2023-09, Improvements to Income Tax Disclosures (Topic 740). The ASU requires disaggregated information about a reporting entity&#8217;s effective tax rate reconciliation as well as additional information on income taxes paid. The ASU is effective on a prospective basis for annual periods beginning after December 15, 2024. Early adoption is also permitted for annual financial statements that have not yet been issued or made available for issuance. The Company will adopt ASU 2023-09 in its fourth quarter of 2025 using a prospective transition method.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In November 2024, FASB issued ASU No. 2024-03, Disaggregation of Income Statement Expenses (Subtopic 220-40). In January 2025, ASU No. 2025-01 was issued to clarify the effective date for all public business entities. The ASU requires the disaggregated disclosure of specific expense categories, including purchases of inventory, employee compensation, depreciation, and amortization, within relevant income statement captions. This ASU also requires disclosure of the total amount of selling expenses along with the definition of selling expenses. The ASU is effective for annual periods beginning after December 15, 2026, and interim periods within fiscal years beginning after December 15, 2027. Adoption of this ASU can either be applied prospectively to consolidated financial statements issued for reporting periods after the effective date of this ASU or retrospectively to any or all prior periods presented in the consolidated financial statements. Early adoption is also permitted. This ASU will likely result in the required additional disclosures being included in our consolidated financial statements once adopted. We are currently evaluating the provisions of this ASU.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In July 2025, FASB issued ASU No. 2025-05, Financial Instruments&#8212;Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets. The amendments in this update provide a practical expedient permitting an entity to assume that conditions at the balance sheet date remain unchanged over the life of the asset when estimating expected credit losses for current classified accounts receivable and contract assets. This update is effective for annual periods beginning after December 15, 2025, including interim periods within those fiscal years. Adoption of this ASU can be applied prospectively for reporting periods after its effective date. Early adoption is permitted. We are currently evaluating the provisions of this ASU and do not expect this ASU to have a material impact on our consolidated financial statements.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>INVENTORIES</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"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 3. INVENTORIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Inventories consist of the following at (rounded to the nearest thousandth):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Finished Goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,332,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,800,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Raw Materials</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">900,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">878,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventory Reserve</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(868,000</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(1,100,000</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">3,364,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">3,578,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our inventory reserve decreased by $232,000 during the nine months ended September 30, 2025 due to higher than anticipated equipment sales during the current fiscal year.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>23
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>VENDOR DEPOSITS<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ExtraordinaryAndUnusualItemsAbstract', window );"><strong>VENDOR DEPOSITS</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_tomz_VendorDepositsTextBlock', window );">VENDOR DEPOSITS</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 4. VENDOR DEPOSITS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">At September 30, 2025, and December 31, 2024, we maintained vendor deposits of $222,065 and $35,895, respectively, for open purchase orders for inventory.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_VendorDepositsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_VendorDepositsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_ExtraordinaryAndUnusualItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ExtraordinaryAndUnusualItemsAbstract</td>
</tr>
<tr>
<td style="padding-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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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 );">PROPERTY AND EQUIPMENT</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 5. PROPERTY AND EQUIPMENT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Property and equipment consist of the following at:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">458,652</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">458,652</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equipment</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,316,200</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,301,803</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vehicles</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">66,170</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">66,170</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer and software</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">318,999</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">316,334</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">393,381</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">393,381</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tenant Improvement Allowance</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">405,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">405,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total cost of Property and Equipment</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,958,402</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,941,340</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated Depreciation</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">3,279,874</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">3,065,891</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and Equipment, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">678,528</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">875,449</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September<strong> </strong>30, 2025, depreciation was $60,822 and $184,587, respectively. For the three and nine months ended September<strong> </strong>30, 2024, depreciation was $65,031 and $209,751, respectively. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September<strong> </strong>30, 2025, and 2024, amortization of tenant improvement allowance was $9,798 and $29,395, respectively and was recorded as lease expense and included within general and administrative expense on the consolidated statement of operations.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>25
<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.3</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<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>INTANGIBLE ASSETS</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</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 6. INTANGIBLE ASSETS </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Intangible assets consist of patents and trademarks related to our Binary Ionization Technology. We amortize the patents over the estimated remaining lives of the related patents. Trademarks have an indefinite life. Amortization expenses were $7,766 and $21,781 for the three and nine months ended September 30, 2025, respectively. Amortization expenses were $4,878 and $14,633 for the three and nine months ended September 30, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Definite life intangible assets consist of the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Intellectual Property and Patents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,449,482</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,350,031</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated Amortization</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">2,952,102</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">2,930,321</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Patents, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">497,380</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">419,710</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Indefinite life intangible assets consist of the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Trademarks</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">861,825</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">830,864</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Intangible Assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,359,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,250,574</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Approximate future amortization is as follows (rounded to nearest thousand):</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">October 1 - December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">378,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">497,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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>26
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</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_LeasesOfLesseeDisclosureTextBlock', window );">LEASES</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 7. LEASES </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In April 2018, we entered into a 10-year lease agreement for a new 9,000-square-foot facility that contains office, warehouse, lab and research and development space in Frederick, Maryland. The lease agreement commenced in December 2018 when the property was ready for occupancy. The agreement provided for annual rent of $143,460, an escalation clause that increases the rent 3% year over year, a landlord tenant improvement allowance of $405,000 and additional landlord work as discussed in the lease agreement. We took occupancy of the property on December 17, 2018, and the lease was amended in June 2019 to provide for a 4-month rent holiday and a commencement date of April 1, 2019. A 7% discount rate was determined using our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments. Lease expense for operating lease payments is recognized on a straight-line basis over the lease term. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The balances for our operating lease where we are the lessee are presented as follows within our condensed consolidated balance sheet:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025 </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Operating leases:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Assets:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;">342,229</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;">399,254</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Liabilities:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">139,917</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">129,132</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, net of current portion</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">407,781</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">513,395</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Right of Use Liability</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">547,698</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">642,527</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The components of lease expense are as follows and are included within general and administrative expense on our condensed consolidated statement of operations. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Lease Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">39,329</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">39,329</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">117,986</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">117,986</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Other information related to leases where we are the lessee is as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025 </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average remaining lease term:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">3.25 years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00 years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Discount rate:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Supplemental cash flow information related to leases where we are the lessee is as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Paid for amounts included in</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">the measurement of lease liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">42,825</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">41,577</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">126,395</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">123,521</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September<strong> </strong>30, 2025, the maturities of our operating lease liability are as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Operating</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lease</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">October<strong> </strong>1 - December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">42,825</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">175,153</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">180,408</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">185,820</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">34,840</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Minimum Lease Payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">619,046</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">71,348</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Imputed value of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">547,698</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Current portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">139,917</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term portion of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">407,781</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_LeasesOfLesseeDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing.</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 840<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/840/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_LeasesOfLesseeDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CLOUD COMPUTING SERVICE CONTRACT<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT</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_tomz_CloudComputingServiceContractDisclosureTextBlock', window );">CLOUD COMPUTING SERVICE CONTRACT</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 8. CLOUD COMPUTING SERVICE CONTRACT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2020, we entered into a cloud computing service contract with a vendor which provided for annual payments in the amount of $30,409 and expired in May 2025. The annual contract payments were capitalized as a prepaid expense and amortized over a twelve-month period.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We incurred implementation costs of $66,857 in connection with the cloud computing service contract which were capitalized in prepaid expenses and other assets as of December 31, 2024. In accordance with ASU No. 2018-15, such implementation costs were amortized over the remaining contract terms beginning January 1, 2021, which was when the cloud-based service contract was placed in service. Amortization expense for the three and nine months ended September 30, 2025, were $0 and $7,436, respectively. Amortization expense for the three and nine months ended September 30, 2024, were $3,766 and $11,297, respectively.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CloudComputingServiceContractDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CloudComputingServiceContractDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONVERTIBLE DEBT<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ConvertibleDebtAbstract', window );"><strong>CONVERTIBLE DEBT</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 );">CONVERTIBLE DEBT</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 9. CONVERTIBLE DEBT</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In October and November 2023, we entered into a Securities Purchase Agreement (the &#8220;SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#8220;Private Placement&#8221;) in one or more closings up to an aggregate principal amount of $5,000,000 of Convertible Notes (the &#8220;Notes&#8221;). In October and November 2023, we sold and issued an aggregate of $2,600,000 of Notes that are convertible into 2,080,000 shares of common stock at a conversion price of $1.25 per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Notes mature and are due on the fifth anniversary of the issuance date in October and November of 2028. The Notes bear simple interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible into shares of our Common Stock, at the option of the holder, at an initial conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement). The Notes are unsecured and senior to other indebtedness subject to certain exceptions. During the three and nine months ended September 30, 2025, interest expense related to these Notes was recorded on a straight-line basis which totaled $78,000 and $234,000, respectively. During the three and nine months ended September 30, 2024, interest expense related to these Notes was recorded on a straight-line basis which totaled $78,000 and $234,000, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the nine months ended September 30, 2025, we entered into Securities Purchase Agreements (the &#8220;SPA&#8221;) with certain accredited investors (collectively, the &#8220;Investors&#8221;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#8220;Private Placement&#8221;) in one or more closings up to an aggregate principal amount of $3,000,000 (the &#8220;Notes&#8221;). Pursuant to the SPA and as of September 30, 2025, we sold and issued convertible promissory notes (the &#8220;Notes&#8221;) to purchase an aggregate of 428,000 shares of common stock at the conversion price of $1.25 per share in exchange for aggregate gross proceeds of $535,000.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Notes mature and are due on the fifth anniversary of the issuance date in 2030. The Notes bear simple interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible into shares of our Common Stock, at the option of the holder, at a conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement). The Notes are unsecured and senior to other indebtedness subject to certain exceptions. Interest expense related to these Notes for the three and nine months ended September 30, 2025, was $15,550 and $28,625, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Amortization of deferred financing costs were $18,323 and $52,617 for the three and nine months ended September 30, 2025, respectively which has been included with interest expense on the statement of operations. Amortization of deferred financing costs were $15,620 and $46,860 for the three and nine months ended September 30, 2024, respectively which has been included with interest expense on the statement of operations. Additions to deferred financing costs totaled $54,058 during the nine months ended September 30, 2025, and are being amortized on a straight-line basis over the life of the notes.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Convertible notes consist of the following at:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,135,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">2,600,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Debt issuance costs</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">(366,456</td><td style="vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">(312,398</td><td style="vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accumulated amortization</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">125,509</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">72,892</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,894,053</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,360,494</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ConvertibleDebtAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ConvertibleDebtAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-8A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders' Equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">SHAREHOLDERS' EQUITY</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 10. SHAREHOLDERS&#8217; EQUITY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our Board of Directors (the &#8220;Board&#8221;) may, without further action by our shareholders, from time to time, direct the issuance of any authorized but unissued or unreserved shares of preferred stock in series and at the time of issuance, determine the rights, preferences and limitations of each series. The holders of such preferred stock may be entitled to receive a preference payment in the event of any liquidation, dissolution or winding up by us before any payment is made to the holders of our Common Stock. Furthermore, the Board could issue preferred stock with voting and other rights that could adversely affect the voting power of the holders of our Common Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Convertible Series A Preferred Stock</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our authorized Convertible Series A Preferred Stock, $0.01 par value, consists of 1,000,000 shares. At September<strong> </strong>30, 2025, and December 31, 2024, there were 63,750 shares issued and outstanding. The Convertible Series A Preferred Stock is convertible at the rate of one share of common stock for one share of Convertible Series A Preferred Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Convertible Series B Preferred Stock</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of 4,000 shares. At September<strong> </strong>30, 2025, and December 31, 2024, there were no shares issued and outstanding. Each share of Convertible Series B Preferred Stock may be converted (at the holder&#8217;s election) into two hundred shares of our Common Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Common Stock</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2024, we issued 60,000 shares of Common Stock valued at approximately $45,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2025, we issued 60,000 shares of Common Stock valued at approximately $51,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Stock Options</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In May 2024, we issued options to purchase 225,000 shares of Common Stock to Officers at an exercise price of $0.75 per share pursuant to an employment agreement. The options were valued at $144,308 and have a contractual term of 10 years. We utilized the Black-Scholes model to fair value the options received by Officers with the following assumptions: volatility, 125%; expected dividend yield, 0%; risk free interest rate, 4.35%; and a contractual term of 10 years. The grant date fair value of each share of Common Stock underlying the options was $0.64.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table summarizes stock options outstanding as of September<strong> </strong>30, 2025, and December 31, 2024:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;<strong>December 31, </strong><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">805,042</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.23</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">617,542</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.38</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">225,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.75</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.88</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(36,250</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1.04</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(6,250</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">0.80</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">768,792</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1.24</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">805,042</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1.23</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Options outstanding and exercisable by price range as of September<strong> </strong>30, 2025, were as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining </strong><strong>Contractual</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted </strong><strong>Average</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Range</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.71</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">7,042</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">2.31</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">7,042</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">0.71</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.75</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">225,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">8.63</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">225,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.32</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.80</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.85</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">210,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.33</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">210,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.85</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6.30</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.12</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.93</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.21</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.93</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.40</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.34</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.40</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.06</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">31,250</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">0.01</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">31,250</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">7.06</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">768,792</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">6.81</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">768,792</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">1.24</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Stock Warrants</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table summarizes the outstanding common stock warrants as of September<strong> </strong>30, 2025 and December 31, 2024:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025 </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,765,846</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.26</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,772,096</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.25</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(161,458</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1.19</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(6,250</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1.12</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,604,388</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.32</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,765,846</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.26</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Warrants outstanding and exercisable by price range as of September<strong> </strong>30, 2025, were as follows:<strong>&#160;</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><strong>Average Weighted</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.64</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">8.14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">0.64</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">8.33</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.80</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">437,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.23</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">437,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.68</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.99</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.68</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.18</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.99</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.18</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.57</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.00</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">6.95</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">375,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">5.01</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">375,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">6.95</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,604,388</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">3.10</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,604,388</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2.32</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">There were no unvested warrants outstanding as of September<strong> </strong>30, 2025.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-8A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>COMMITMENTS AND CONTINGENCIES<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>COMMITMENTS AND CONTINGENCIES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">COMMITMENTS AND CONTINGENCIES</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 11. COMMITMENTS AND CONTINGENCIES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Legal Contingencies</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We may become a party to litigation in the normal course of business.&#160;In the opinion of management, there are no legal matters involving us that would have a material adverse effect upon our financial condition, results of operations or cash flows. In addition, from time to time, we may have to file claims against parties that infringe on our intellectual property.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Product Liability</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September<strong> </strong>30, 2025, and December 31, 2024, there were no claims against us for product liability.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478522/954-440-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONTRACTS AND AGREEMENTS<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ContractsAndAgreementsAbstract', window );"><strong>CONTRACTS AND AGREEMENTS</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_tomz_ContractsAndAgreementsTextBlock', window );">CONTRACTS AND AGREEMENTS</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 12. CONTRACTS AND AGREEMENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Employment Agreement &#8211; Chief Financial Officer</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On May 30, 2025, the Board of Directors of the Company appointed Mr. David Vanston as the Company&#8217;s Chief Financial Officer, effective immediately. The appointment was made following the expiration of Mr. Nick Jennings&#8217;s offer letter to serve as the Interim Chief Financial Officer, as previously disclosed by the Company. &#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In connection with his appointment, the Company entered into an offer letter with Mr. Vanston providing for an annual base salary of $230,000 and eligibility to receive an annual discretionary bonus of up to 40% of his base salary. Mr. Vanston is also entitled to receive an initial grant of 100,000 restricted stock units and an additional grant of 100,000 restricted stock units following one year of employment, each subject to a three-year vesting schedule. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong><em>Director Compensation</em></strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The annual fee to the non-employees of our Board was $48,000, to be paid in cash on a quarterly basis, with the exception of the audit committee chairperson, whose annual fee was $54,600, also to be paid in cash on a quarterly basis. Non-employee Director compensation also includes the annual issuance of our Common Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During October 2025, the Company revised its director compensation (Refer to Note 19 &#8211; Subsequent events).</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ContractsAndAgreementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ContractsAndAgreementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ContractsAndAgreementsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contracts and agreements text block.</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;">tomz_ContractsAndAgreementsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract', window );"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock', window );">ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">Accrued expenses and other current liabilities consisted of the following at:</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commissions</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">178,932</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">187,151</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Payroll and related costs </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">488,968</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,773</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Director fees&#160;&#160;&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">37,650</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">37,650</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales Tax Payable&#160;&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,575</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,864</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued warranty (Note 14)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">22,648</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">30,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses and current liabilities</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">97,950</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">71,237</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">828,723</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">455,675</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, accrued expenses, and other liabilities that are classified as current 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://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock</td>
</tr>
<tr>
<td style="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_AccruedLiabilitiesAndOtherLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesAndOtherLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-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>33
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED WARRANTY<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>ACCRUED WARRANTY</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_ProductWarrantyDisclosureTextBlock', window );">ACCRUED WARRANTY</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 14. ACCRUED WARRANTY</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. The warranty is generally limited to a refund of the original purchase price of the product or a replacement part. We estimate warranty costs based on historical warranty claim experience.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table presents warranty reserve activities at:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Beginning accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for warranty expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">15,637</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">9,707</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Settlement of warranty claims</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(22,989</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(9,707</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Ending accrued warranty costs</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">22,648</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">30,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_ProductWarrantyDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 standard and extended product warranties and other product guarantee contracts, including a tabular reconciliation of the changes in the guarantor's aggregate product warranty liability for 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 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<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/2147482425/460-10-50-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-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_ProductWarrantyDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>INCOME TAXES</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"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 15. INCOME TAXES</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September 30, 2025, and 2024, our provision for income tax was $0. Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits, which are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes. As of September 30, 2025, and December 31, 2024, we recorded a valuation allowance of $9,223,000 and $8,678,000, respectively for the portion of the deferred tax assets that we do not expect to be realized. Management believes that based on the available information, it is more likely than not that the remaining U.S. deferred tax assets will not be realized, such that a 100% valuation allowance is required against U.S. deferred tax assets.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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 942<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477617/942-740-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478822/944-740-50-1<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 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 5: 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 6: 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CUSTOMER CONCENTRATION<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT</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_ConcentrationRiskDisclosureTextBlock', window );">CUSTOMER CONCENTRATION</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 16. CUSTOMER CONCENTRATION</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Company had certain customers whose accounts receivable balances individually represented 10% or more of the Company&#8217;s accounts receivable, and whose sales for the three and nine months represented 10% or more of the Company&#8217;s revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">One customer accounted for 23% of net revenue for the three months ended September 30, 2025. Two customers accounted for 12% of net revenue for the three months ended September 30, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">One customer accounted for 12% of net revenue for the nine months ended September 30, 2025. One customer accounted for 18% of net revenue for the nine months ended September 30, 2024.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, two customers accounted for 40% of our gross accounts receivable. As of December 31, 2024, two customers accounted for 25% of our gross accounts receivable.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<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 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 3A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-3A<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-2A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<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/2147482861/275-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/275/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_ConcentrationRiskDisclosureTextBlock</td>
</tr>
<tr>
<td style="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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>SEGMENT REPORTING</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"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 17. SEGMENT REPORTING</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our Chief Executive Officer, as the CODM, organizes our Company, manages resource allocations and measures performance among one operating and reportable segment due to the fact that we derive our revenue primarily from one product (equipment and service revenue based on our patented BIT technology). A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above. We evaluated the aggregation criteria in ASC 280-10-50-11 which states that aggregation can be considered if segments are similar in certain areas, including the nature of products and services, production processes, type of class of customer, and future economic performance.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our CODM is regularly provided with more detailed expense information than what is included in our consolidated income statement. The CODM considers monthly budgets and cash flow projections, gross margins for each project, and our consolidated net income (loss) as reported on the income statement when allocating resources and assessing our performance. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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/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 2: 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 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 (e)<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 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<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 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<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 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/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 9: 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 10: 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 11: 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 12: 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 13: 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 14: 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 15: 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 16: 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 17: 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 18: 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 19: 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 20: 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 21: 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 22: 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 23: 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 24: 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 25: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><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>37
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>EMPLOYEE RETENTION CREDITS<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_EmployeeRetentionCreditsAbstract', window );"><strong>EMPLOYEE RETENTION CREDITS</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_tomz_EmployeeRetentionCreditsDisclosureTextBlock', window );">EMPLOYEE RETENTION CREDITS</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 18. EMPLOYEE RETENTION CREDITS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During the nine months ended September 30, 2025, the Company recorded refunds as a result of Employee Retention Credits (ERC), which are refundable tax credits against certain employment taxes initially made available under the Coronavirus Aid, Relief, and Economic Security Act (the &#8220;CARES&#8221; Act). In accordance with the Company&#8217;s accounting policy, the ERC payments have been recognized as Other Income as the Company determined that all relevant criteria for recognition had been met. The ERC represents a one-time benefit and does not constitute recurring operational revenue.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the nine months ended September 30, 2025, we recorded $534,912 in employee retention credits and $81,887 related interest within other income and interest income, respectively, in our consolidated statement of operations. This consists of refund claims filed on amended Forms 941-X for the second, third and fourth quarters of 2020, and the first two quarters of 2021.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_EmployeeRetentionCreditsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EmployeeRetentionCreditsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_EmployeeRetentionCreditsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EmployeeRetentionCreditsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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>38
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsAbstract', window );"><strong>SUBSEQUENT EVENTS</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"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><strong>NOTE 19. SUBSEQUENT EVENTS</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During October 2025, the Compensation Committee approved a change to our director compensation whereby each non-employee director of the Board will be granted 40,000 RSUs effective as of the date of the 2025 Annual Meeting of Stockholders (the &#8220;RSU grant&#8221;); the non-employee directors are entitled to receive one share of Common Stock for each RSU upon vesting; and the RSU grant will vest in full upon the earlier of (i) the first anniversary of the date of grant and (ii) immediately prior to the annual meeting of shareholders that occurs following the date of grant, subject to the non-employee director&#8217;s continued service to the Company through such vesting date. In addition, director fees are now reduced to $5,000 per quarter, commencing in the fourth quarter of fiscal year 2025.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">During October 2025, the Committee also approved the grant to our CFO of an award of 100,000 RSUs under the Plan, with such RSUs to vest over the next 3 years, subject to his continued service with the Company through each applicable vesting date.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On November 5, 2025, we entered into an Equity Purchase Agreement (the &#8220;Purchase Agreement&#8221;) with Hudson Global Ventures, LLC (&#8220;Hudson&#8221;), pursuant to which and upon the terms and subject to the conditions set forth therein, the Company has the right, but not the obligation, to sell to Hudson up to $20,000,000 of shares of its common stock, par value $0.01 per share (the &#8220;Common Stock&#8221;), from time to time over a 24-month period (the &#8220;Commitment Period&#8221;). Concurrently with entering into the Purchase Agreement, the Company also entered into a Registration Rights Agreement (the &#8220;Registration Rights Agreement&#8221;) with Hudson, pursuant to which the Company agreed to register the issuances and sales of shares of Common Stock under the Purchase Agreement, the Registrable Securities (as defined in the Registration Rights Agreement), pursuant to a registration statement to be filed under the Securities Act of 1933, as amended.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">At any time and from time to time during the Commitment Period, on any business day selected by the Company, the Company may direct Hudson to purchase shares of its Common Stock by delivering a written notice (a &#8220;Put Notice&#8221;). The purchase price per share for each purchase of shares subject to a Put Notice will be equal to the lesser of (i) 92% of the average of the three lowest trading prices of the Common Stock on the Nasdaq Capital Market during the ten trading days immediately preceding the Put Date and (ii) 92% of the lowest closing price of the Common Stock during the Valuation Period as defined in the Purchase Agreement.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Under applicable Nasdaq rules, the Company may not issue or sell to Hudson under the Purchase Agreement shares of Common Stock in excess of 19.99% of the shares of Common Stock outstanding immediately prior to the execution of the Purchase Agreement (the &#8220;Exchange Cap&#8221;) without first obtaining stockholder approval as required by Nasdaq Rule 5635(d). The Company is not obligated to sell any shares to Hudson under the Purchase Agreement, and Hudson is not obligated to purchase any shares that would exceed the Exchange Cap. Pursuant to the Purchase Agreement, the Company agrees to issue 52,000 shares of Common Stock to Hudson as Commitment Shares in consideration for Hudson&#8217;s commitment to enter into the transaction.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Purchase Agreement contains customary representations, warranties, covenants, and closing conditions. The Company may terminate the Purchase Agreement at any time by written notice to Hudson, subject to certain limitations.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>39
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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 );">Basis of Presentation</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The interim unaudited condensed consolidated financial statements included herein, presented in accordance with generally accepted accounting principles in the United States of America (GAAP), and stated in U.S. dollars, have been prepared by us, without an audit, pursuant to the rules and regulations of the U.S. Securities and Exchange Commission (the &#8220;SEC&#8221;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations, although we believe that the disclosures are adequate to make the information presented not misleading.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">These financial statements reflect all adjustments, consisting of normal recurring adjustments, which, in the opinion of management, are necessary for fair presentation of the information contained therein. These unaudited condensed consolidated financial statements should be read in conjunction with our audited financial statements for the year ended December 31, 2024, and notes thereto which are included in the annual report on Form 10-K previously filed with the SEC on April 14, 2025, as amended (the &#8220;Annual Report&#8221;). We follow the same accounting policies in the preparation of interim reports. The results of operations for the interim periods covered by this Form 10-Q may not necessarily be indicative of results of operations for the full fiscal year or any other interim period.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Principles of Consolidation</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The accompanying condensed consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription', window );">Reclassification of Accounts</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The preparation of the condensed consolidated financial statements in conformity with GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to allowance for credit losses, inventory, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementPolicyPolicyTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of input, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"><tbody><tr style="height:15px"><td style="width:4%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:8%;vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 1:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Quoted prices in active markets for identical assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 2:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Level 3:</p></td><td style="vertical-align:top;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be more than insured limits. At September 30, 2025, and December 31, 2024, there were no cash equivalents.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReceivablesPolicyTextBlock', window );">Accounts Receivable</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accounts receivables are stated at the amount management expects to collect from outstanding balances. The Company generally does not require collateral to support customer receivables. Management assesses the collectability of outstanding customer invoices and maintains an allowance resulting from the expected non-collection of customer receivables. In estimating this reserve, management considers factors such as industry sector, historical collection experience, customer creditworthiness, specific customer risk, and current and expected general economic conditions. For those customers to whom we extend credit, in accordance with the Current Expected Credit Loss (CECL) model, we make a risk-based evaluation at the point of sale which is further reviewed on both an individual and collective (pool) basis during each reporting period based on ASC 326. We are required to estimate and report expected credit losses over the entire life of a financial asset, considering historical data, current conditions, and future forecasts, even if the risk of loss is remote. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have implemented a policy of reserving credit losses based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be at risk. Our allowance for credit losses was as follows:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">2,229,977</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">1,494,347</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Credit loss expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">197,639</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,050,543</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustment for uncollectible accounts</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(1,236,069</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(314,913</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">1,191,547</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,229,977</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials. We expense certification costs to cost of goods sold as incurred.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence, and future customer demand. We record an allowance for estimated losses when the facts and circumstances indicate that inventories may not be usable or realized when comparing current inventory levels to anticipated demand for our product.&#160; Our reserve for obsolete inventory was $868,000 and $1,100,000 as of September 30, 2025, and December 31, 2024, respectively.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property and Equipment</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation commences for equipment, furniture and fixtures and vehicles, once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the remaining lease term at the time the asset was placed into service or the service lives of the improvements, whichever is shorter.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize a right-of-use (&#8220;ROU&#8221;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depend upon classification as a finance or operating lease.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We have also elected the practical expedient not to separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense in the period in which they are incurred.</p><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_tomz_AccountsPayablePolicyTextBlock', window );">Accounts Payable</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, one vendor accounted for approximately 46% of accounts payable. As of December 31, 2024, one vendor accounted for approximately 60% of accounts payable.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the three and nine months ended September 30, 2025, two vendors accounted for 59% and 50% of cost of sales, respectively. For the three and nine months ended September 30, 2024, two vendors accounted for 53% and 65% of cost of sales, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ExtendedProductWarrantyPolicy', window );">Accrued Warranties</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results.&#160; As of September 30, 2025, and December 31, 2024, our warranty reserve was $22,648 and $30,000, respectively. (See Note 14).</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Taxes</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes.&#160; Net deferred tax assets have been fully reserved as of September 30, 2025, and December 31, 2024.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Net Income (Loss) Per Share</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures. The computation of diluted EPS is similar to the computation of basic EPS except that the numerator may have to adjust for any dividends and income or loss associated with potentially dilutive securities that are assumed to have resulted in the issuance of shares of common stock and the denominator may have to adjust to include the number of additional shares of common stock that would have been outstanding if the dilutive potential shares of common stock had been issued during the period to reflect the potential dilution that could occur from shares of common stock issuable through a contingent shares issuance arrangement, stock options, warrants, or convertible preferred stock. For purposes of determining diluted earnings per common share, the treasury stock method is used for stock options, and warrants, and the if-converted method is used for convertible preferred stock and convertible debt as prescribed in FASB ASC Topic 260. </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Potentially dilutive securities as of September 30, 2025, consisted of 2,508,000 shares of common stock from convertible debentures, 2,604,388 shares of common stock issuable upon exercise of outstanding warrants, 768,792 shares of common stock issuable upon outstanding stock options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Potentially dilutive securities as of September 30, 2024, consisted of 2,080,000 shares of common stock from convertible debentures, 2,765,846 shares of common stock issuable upon exercise of outstanding warrants, 805,042 shares of common stock issuable upon vesting of stock options and exercise and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred Stock.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Options, warrants, preferred stock and shares associated with the conversion of debt to purchase approximately 5.9 million and 5.7 million shares of common stock were outstanding on September 30, 2025, and 2024, respectively but were excluded from the computation of diluted net loss per share at September 30, 2025 and 2024 due to anti-dilutive effect on net loss per share.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustments for convertible debt - as converted:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest on convertible debt net of effective tax rate (28%)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,015,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,096,751</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,015,205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,908</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">63,750</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,096,751</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">The following table sets forth the number of potential shares of common stock that have been excluded from diluted net income (loss) per share because their effect was anti-dilutive:</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">768,792</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">573,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,604,388</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,734,596</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,508,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,080,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,881,180</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,387,596</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Note: Warrants, options, convertible debt and preferred stock for the nine months ending September 30, 2025 and 2024, are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We recognize revenue in accordance with the Financial Accounting Standards Board (FASB) Accounting Standards Codification (&#8220;ASC&#8221;) Topic 606, Revenue from Contracts with Customers. We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above for each distinct performance obligation identified in step (ii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to resale of our products by dealers and distributors. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Disaggregation of Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The following table presents our approximate revenue disaggregated by revenue source.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,603,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,766,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">409,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">776,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,280,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,886,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">732,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">656,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Product and Service Revenue</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,255,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,247,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,364,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,423,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Revenue by Geographic Region</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,294,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,169,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,325,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,501,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Product revenue includes sales from our standard and customized equipment, solutions and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized when the services agreed upon are rendered to our customers at an amount that reflects the consideration we expect to receive in exchange for those services.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Estimated allowances for sales returns are recorded as sales are recognized. We use a specific identification method based on subsequent product return activity and historical average calculations to estimate the allowance for sales returns. Our allowance for sales returns as of September 30, 2025, was $90,540 and $227,000 at December 31, 2024, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Costs to Obtain a Contract with a Customer</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Contract Balances</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">As of September 30, 2025, and December 31, 2024, we had contract balances and unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed in the amounts of $309,752 and $211,724, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Arrangements with Multiple Performance Obligations</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Significant Judgments</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services. We also record an estimated allowance for anticipated product returns.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Equity Compensation Expense</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We account for equity compensation expense in accordance with FASB ASC 718, &#8220;Compensation-Stock Compensation.&#8221; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#8217;s fair value.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#8211;free interest rates are calculated based on continuously compounded risk&#8211;free rates for the appropriate term. The expected term of the Company&#8217;s warrants has been determined utilizing the &#8220;simplified&#8221; method for awards that qualify as &#8220;plain-vanilla&#8221; warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its common stock, par value $0.01 (the &#8220;Common Stock&#8221;) and does not intend to pay dividends on its Common Stock in the foreseeable future.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">On July 7, 2017, our shareholders approved the Company&#8217;s Amended and Restated 2016 Equity Incentive Plan (the amended &#8220;2016 Plan&#8221;). The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of Common Stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of Common Stock for numerous reasons, including, but not limited to, shares of Common Stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. During the nine months ended September<strong> </strong>30, 2025, and 2024, we issued 60,000 and 60,000 shares of Common Stock, respectively, to members of our Board out of the 2016 Plan.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentrations of Credit Risk</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock', window );">Long-Lived Assets Including Acquired Intangible Assets</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the three and nine months ended September 30, 2025, and 2024.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising and Promotional Expenses</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Advertising and promotional costs are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, advertising and promotional expenses included in selling expenses were approximately $24,000 and $88,000, respectively. For the same periods in 2024, these expenses were approximately $35,000 and $192,000, respectively.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpensePolicy', window );">Research and Development Expenses</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">Research and development expenses are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, these expenses were approximately $11,000 and $139,000, respectively. For the same periods in 2024, research and development expenses were approximately $56,000 and $186,000, respectively.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingPolicyPolicyTextBlock', window );">Business Segments</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product in which 1) The business activities are homogenous in nature, 2) The entire operation faces similar market conditions and risks, 3) There is a high degree of integration in its operations, 4) Internal evaluations of financial results are conducted on a consolidated basis. A breakdown of revenue is presented in &#8220;Revenue Recognition&#8221; in Note 2 above. See Note 17, Segment Reporting for more details. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_GoingConcernPolicyTextBlock', window );">Going Concern</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">For the nine months ended September 30, 2025, and 2024, our net loss was approximately $1,943,000 and $1,221,000, respectively, and the cash used in operations was approximately $577,000 and $1,453,000, respectively. As of September 30, 2025, we had approximately $490,000 cash and cash equivalents and an accumulated deficit of $56.2 million. These factors raise substantial doubt about the Company&#8217;s ability to continue as a going concern within one year after the date the financial statements are issued. The Company&#8217;s consolidated financial statements have been prepared on the basis of continuity of operations, realization of assets and satisfaction of liabilities in the ordinary course of business; no adjustments have been made relating to the recoverability and classification of recorded asset amounts and classification of liabilities that might be necessary should the Company not continue as a going concern.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">The Company intends to fund ongoing activities by utilizing its current cash on hand, the cash generated from operations, and by raising additional capital through equity or debt financings. There can be no assurance that the Company will be successful in raising that additional capital or that such capital, if available, will be on terms that are acceptable to us, as our ability to raise capital may be affected by various factors, including general market conditions, volatility of our stock price, investor interests and expectations, and our financial performance. </p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">Recent Accounting Pronouncements</a></td>
<td class="text"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Recently issued accounting pronouncements not yet adopted</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In December 2023, FASB issued ASU No. 2023-09, Improvements to Income Tax Disclosures (Topic 740). The ASU requires disaggregated information about a reporting entity&#8217;s effective tax rate reconciliation as well as additional information on income taxes paid. The ASU is effective on a prospective basis for annual periods beginning after December 15, 2024. Early adoption is also permitted for annual financial statements that have not yet been issued or made available for issuance. The Company will adopt ASU 2023-09 in its fourth quarter of 2025 using a prospective transition method.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In November 2024, FASB issued ASU No. 2024-03, Disaggregation of Income Statement Expenses (Subtopic 220-40). In January 2025, ASU No. 2025-01 was issued to clarify the effective date for all public business entities. The ASU requires the disaggregated disclosure of specific expense categories, including purchases of inventory, employee compensation, depreciation, and amortization, within relevant income statement captions. This ASU also requires disclosure of the total amount of selling expenses along with the definition of selling expenses. The ASU is effective for annual periods beginning after December 15, 2026, and interim periods within fiscal years beginning after December 15, 2027. Adoption of this ASU can either be applied prospectively to consolidated financial statements issued for reporting periods after the effective date of this ASU or retrospectively to any or all prior periods presented in the consolidated financial statements. Early adoption is also permitted. This ASU will likely result in the required additional disclosures being included in our consolidated financial statements once adopted. We are currently evaluating the provisions of this ASU.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">&#160;</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;">In July 2025, FASB issued ASU No. 2025-05, Financial Instruments&#8212;Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets. The amendments in this update provide a practical expedient permitting an entity to assume that conditions at the balance sheet date remain unchanged over the life of the asset when estimating expected credit losses for current classified accounts receivable and contract assets. This update is effective for annual periods beginning after December 15, 2025, including interim periods within those fiscal years. Adoption of this ASU can be applied prospectively for reporting periods after its effective date. Early adoption is permitted. We are currently evaluating the provisions of this ASU and do not expect this ASU to have a material impact on our consolidated financial statements.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AccountsPayablePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Custom Element.</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;">tomz_AccountsPayablePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_tomz_GoingConcernPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_GoingConcernPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_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>
<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. Includes, but is not limited to, policy for entering into master netting arrangement or similar agreement to mitigate credit risk of financial instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ExtendedProductWarrantyPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 extended product warranties and other guarantee contracts including the methodology for measuring the 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 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-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_ExtendedProductWarrantyPolicy</td>
</tr>
<tr>
<td style="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_FairValueMeasurementPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities.</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_FairValueMeasurementPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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_PriorPeriodReclassificationAdjustmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.</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 205<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483504/205-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_PriorPeriodReclassificationAdjustmentDescription</td>
</tr>
<tr>
<td style="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_ReceivablesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 receivable. Includes, but is not limited to, accounts receivable and financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<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/2147481962/310-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<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 3: http://www.xbrl.org/2003/role/disclosureRef<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 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<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/2147481962/310-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReceivablesPolicyTextBlock</td>
</tr>
<tr>
<td style="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_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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. Includes revenue from contract with customer and from other sources.</p></div>
<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 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(1))<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_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="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_SegmentReportingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 segment reporting.</p></div>
<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 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<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 29<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<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 29<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<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 29<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<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 54<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<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 36<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-36<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 (b)<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/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 29<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<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 29<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<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 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-29<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="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)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<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 S50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-5<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-4<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479953/718-10-S50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 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 11: 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 12: 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 13: 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 14: 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 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<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_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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_tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock', window );">Schedule of allowance for credit losses</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">2,229,977</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">1,494,347</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Credit loss expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">197,639</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,050,543</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustment for uncollectible accounts</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(1,236,069</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(314,913</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Allowance for credit losses</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">1,191,547</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,229,977</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of earnings per share</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Adjustments for convertible debt - as converted:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Interest on convertible debt net of effective tax rate (28%)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted average number of shares of common stock outstanding:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,015,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">20,096,751</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock', window );">Schedule of anti-dilutive securities</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Numerator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Net Income (Loss)</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(450,348</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">58,962</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Denominator:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Basic weighted-average shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">20,015,205</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Effect of dilutive securities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,908</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">11,888</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px">Preferred Stock</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">-</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">63,750</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted Weighted Average Shares</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,075,205</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">20,096,751</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Net income (loss) attributable to common shareholders per share:</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Basic </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Diluted</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">(0.02</td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">0.00</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Options</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">768,792</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">573,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Warrants</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,604,388</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,734,596</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Debt</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,508,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,080,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,881,180</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">5,387,596</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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 );">Schedule of disaggregation of revenue</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,603,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,766,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">409,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">776,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,280,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,886,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">732,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">656,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,012,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">2,542,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SteraMist Product</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,255,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,247,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Service and Training</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,364,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,423,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30,</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">United States</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,294,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,169,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">International</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,325,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,501,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">4,619,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">6,670,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>INVENTORIES</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 );">Schedule of inventories</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Finished Goods</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,332,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,800,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Raw Materials</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">900,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">878,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Inventory Reserve</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(868,000</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(1,100,000</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">3,364,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">3,578,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 210<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>42
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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 );">Schedule of property and equipment</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Furniture and fixtures</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">458,652</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">458,652</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Equipment</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,316,200</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,301,803</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Vehicles</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">66,170</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">66,170</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Computer and software</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">318,999</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">316,334</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Leasehold improvements</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">393,381</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">393,381</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Tenant Improvement Allowance</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">405,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">405,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total cost of Property and Equipment</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,958,402</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,941,340</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated Depreciation</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">3,279,874</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">3,065,891</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Property and Equipment, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">678,528</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">875,449</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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>43
<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.3</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 (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>INTANGIBLE ASSETS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of definite life of intangible assets</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31,</strong></p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td></tr><tr style="height:15px"><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td style="white-space: nowrap;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Intellectual Property and Patents</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,449,482</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,350,031</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Accumulated Amortization</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">2,952,102</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">2,930,321</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Patents, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">497,380</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">419,710</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of indefinite life of intangible assets</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Trademarks</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">861,825</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">830,864</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Intangible Assets, net</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,359,205</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">1,250,574</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of approximate future amortization</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">October 1 - December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">28,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Thereafter </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">378,000</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">497,000</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and exist in perpetuity, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<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_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<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.3</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">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</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_OperatingLeasesOfLesseeDisclosureTextBlock', window );">Schedule of operating Leases</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025 </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Operating leases:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Assets:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Operating lease right-of-use asset</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;">342,229</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;">399,254</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Liabilities:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Current Portion of Long-Term Operating Lease</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">139,917</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">129,132</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Long-Term Operating Lease, net of current portion</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">407,781</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">513,395</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px">Total Right of Use Liability</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">547,698</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">642,527</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_LeaseCostTableTextBlock', window );">Schedule of components of lease Expenses</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating Lease Expense</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">39,329</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">39,329</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">117,986</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">117,986</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><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_tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock', window );">Schedule of Other Information Related To Leases</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025 </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Weighted-average remaining lease term:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">3.25 years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00 years</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Discount rate:</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Operating leases</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">7.00</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr></tbody></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_tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock', window );">Supplemental Cash Flow Information Related To Leases</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the three months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>For the nine months ended</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, (Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Cash Paid for amounts included in</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">the measurement of lease liabilities</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">42,825</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">41,577</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">126,395</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">123,521</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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 );">Schedule of maturities of operating lease payments</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Operating</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Year Ended:</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Lease</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">October<strong> </strong>1 - December 31, 2025</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">42,825</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2026</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">175,153</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2027</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">180,408</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2028</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">185,820</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">December 31, 2029</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">34,840</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total Minimum Lease Payments</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">619,046</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Interest</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">71,348</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Imputed value of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">547,698</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Current portion</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">139,917</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Long-term portion of lease obligations</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">407,781</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</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 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_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 lessee's operating leases. Includes, but is not limited to, description of lessee's operating lease, existence and terms of renewal or purchase options and escalation clauses, restrictions imposed by lease, such as those concerning dividends, additional debt, and further leasing, rent holidays, rent concessions, or leasehold improvement incentives and unusual provisions or conditions.</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 840<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481440/840-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Subparagraph (Note 3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481418/840-10-55-40<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481501/840-20-50-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481501/840-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONVERTIBLE DEBT (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ConvertibleDebtAbstract', window );"><strong>CONVERTIBLE DEBT</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_ConvertibleDebtTableTextBlock', window );">Schedule of convertible debt</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2025</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, </strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">3,135,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">2,600,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Less: Debt issuance costs</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">(366,456</td><td style="vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">(312,398</td><td style="vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accumulated amortization</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">125,509</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">72,892</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Convertible Notes, net</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,894,053</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,360,494</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ConvertibleDebtAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ConvertibleDebtAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ConvertibleDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 convertible debt instrument. Includes, but is not limited to, principal amount and amortized premium or discount.</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_ConvertibleDebtTableTextBlock</td>
</tr>
<tr>
<td style="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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders' Equity:</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_ScheduleOfStockOptionsRollForwardTableTextBlock', window );">Schedule of stock options outstanding</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, </strong><strong>2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;<strong>December 31, </strong><strong>2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Options</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">805,042</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.23</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">617,542</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1.38</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">225,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.75</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(31,250</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">0.88</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(36,250</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1.04</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(6,250</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">0.80</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">768,792</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1.24</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">805,042</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1.23</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock', window );">Schedule of options outstanding and exercisable by price range</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Options</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining </strong><strong>Contractual</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2"></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted </strong><strong>Average</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Range</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.71</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">7,042</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">2.31</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">7,042</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">0.71</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.75</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">225,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">8.63</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">225,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.75</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.32</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.80</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.85</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">210,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.33</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">210,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.85</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.12</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">6.30</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">270,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.12</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.93</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.21</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">10,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.93</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.40</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.34</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">12,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.40</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">7.06</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">31,250</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">0.01</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">31,250</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">7.06</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">768,792</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">6.81</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">768,792</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;">1.24</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock', window );">Schedule of stock warrants outstanding</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025 </strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number of Warrants</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, beginning of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,765,846</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.26</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,772,096</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2.25</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Granted </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Exercised </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">-</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Expired&#160; </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(161,458</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1.19</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(6,250</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(1.12</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Outstanding, end of period</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,604,388</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.32</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2,765,846</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;">2.26</td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock', window );">Schedule of warrants outstanding and exercisable by price range</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Outstanding Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"><strong>Average Weighted</strong></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercisable Warrants</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px"><td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Remaining Contractual</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Life in Years</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Number</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Weighted Average</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Exercise Price</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.64</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">8.14</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">31,250</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;">0.64</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.80</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">8.33</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.80</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">0.96</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">437,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">7.23</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">437,500</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.96</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">1.68</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.99</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1,434,721</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">1.68</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">2.18</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">0.99</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">172,167</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2.18</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">4.00</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.57</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">28,750</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="vertical-align:bottom;text-align:right;">4.00</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:bottom;white-space: nowrap;">$</td><td><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;">6.95</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">375,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">5.01</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">375,000</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">6.95</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,604,388</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">3.10</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2,604,388</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">2.32</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum: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_ScheduleOfStockOptionsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock 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/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable.</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 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-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_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock</td>
</tr>
<tr>
<td style="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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract', window );"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock', window );">Schedule of accrued expenses and other current liabilities</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September 30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Commissions</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">178,932</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">187,151</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Payroll and related costs </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">488,968</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">125,773</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Director fees&#160;&#160;&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">37,650</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">37,650</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Sales Tax Payable&#160;&#160; </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">2,575</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">3,864</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Accrued warranty (Note 14)</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">22,648</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">30,000</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Other accrued expenses and current liabilities</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">97,950</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">71,237</td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Total </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">828,723</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">455,675</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_AccruedLiabilitiesAndOtherLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesAndOtherLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the (a) carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business (accounts payable); (b) other payables; and (c) accrued liabilities. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer). An alternative caption includes accrued expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED WARRANTY (Tables)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th"><div>Sep. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>ACCRUED WARRANTY</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_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Schedule of warranty reserve activity</a></td>
<td class="text"><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>September </strong><strong>30, 2025</strong></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>&#160;(Unaudited)</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>December 31, 2024</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Beginning accrued warranty costs</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;">30,000</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Provision for warranty expense</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">15,637</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="vertical-align:bottom;text-align:right;">9,707</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Settlement of warranty claims</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(22,989</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;">(9,707</td><td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;">)</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Ending accrued warranty costs</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">22,648</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td><td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;">30,000</td><td style="PADDING-BOTTOM: 3px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px">&#160;</p></td></tr></tbody></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_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_ScheduleOfProductWarrantyLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty 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 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-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_ScheduleOfProductWarrantyLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="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>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.3</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 (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</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 credit losses</a></td>
<td class="nump">$ 2,229,977<span></span>
</td>
<td class="nump">$ 1,494,347<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_tomz_AccountsAndFinancingReceivableForCreditLoss', window );">Credit Loss Expense</a></td>
<td class="nump">197,639<span></span>
</td>
<td class="nump">1,050,543<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss', window );">Adjustment to allowance</a></td>
<td class="num">(1,236,069)<span></span>
</td>
<td class="num">(314,913)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Allowance for credit losses, net</a></td>
<td class="nump">$ 1,191,547<span></span>
</td>
<td class="nump">$ 2,229,977<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AccountsAndFinancingReceivableForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AccountsAndFinancingReceivableForCreditLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_AccountsAndFinancingReceivableAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of accounts and financing receivables. Includes, but is not limited to, notes and loan 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 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_AccountsAndFinancingReceivableAllowanceForCreditLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</p></div>
<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 (f)<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 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<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)(5))<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 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 5: 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 6: 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_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<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.3</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 (Details 1) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (450,348)<span></span>
</td>
<td class="nump">$ 58,962<span></span>
</td>
<td class="num">$ (1,943,457)<span></span>
</td>
<td class="num">$ (1,221,030)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt', window );">Adjustments for convertible debt - as converted:</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_tomz_InterestOnConvertibleDebtNet', window );">Interest on convertible debt net of effective tax rate (28%)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<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_tomz_NetLossAttributableToCommonShareholders', window );">Net Income (loss) Attributable To Common Shareholders</a></td>
<td class="num">$ (450,348)<span></span>
</td>
<td class="nump">$ 58,962<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_EarningsPerShareBasicOtherDisclosuresAbstract', window );"><strong>Weighted Average Number Of Common Shares Outstanding:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesIssuedBasic', window );">Basic</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,015,205<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,096,751<span></span>
</td>
<td class="nump">20,046,195<span></span>
</td>
<td class="nump">19,984,179<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract', window );"><strong>Net Income (loss) Attributable To Common Shareholders Per 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasicEarningsPerShareProForma', window );">Basic per common share</a></td>
<td class="num">$ (0.02)<span></span>
</td>
<td class="nump">$ 0.00<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_DilutedEarningsPerShareProForma', window );">Diluted per common share</a></td>
<td class="num">$ (0.02)<span></span>
</td>
<td class="nump">$ 0.00<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_tomz_InterestOnConvertibleDebtNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_InterestOnConvertibleDebtNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_NetLossAttributableToCommonShareholders">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_NetLossAttributableToCommonShareholders</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Adjustment to additional paid in capital resulting from the recognition of convertible debt instruments as two separate components - a debt component and an equity component. This bifurcation may result in a basis difference associated with the liability component that represents a temporary difference for purposes of applying accounting for income taxes. The initial recognition of deferred taxes for the tax effect of that temporary difference is as an adjustment to additional 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> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 20<br> -Section 25<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481284/470-20-25-22<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_BasicEarningsPerShareProForma">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Pro forma basic earnings per share or earnings per unit, which is commonly presented in initial public offerings based on the terms of the offering.</p></div>
<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> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 1.B.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480148/855-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_BasicEarningsPerShareProForma</td>
</tr>
<tr>
<td style="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_DilutedEarningsPerShareProForma">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Pro forma diluted earnings per share, which is commonly presented in initial public offerings.</p></div>
<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> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 1.B.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480148/855-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_DilutedEarningsPerShareProForma</td>
</tr>
<tr>
<td style="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_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_NetIncomeLossAvailableToCommonStockholdersBasicAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesIssuedBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents the weighted average total number of shares issued throughout the period including the first (beginning balance outstanding) and last (ending balance outstanding) day of the period before considering any reductions (for instance, shares held in treasury) to arrive at the weighted average number of shares outstanding. Weighted average relates to the portion of time within a reporting period that common shares have been issued and outstanding to the total time in that period. Such concept is used in determining the weighted average number of shares outstanding for purposes of calculating earnings per share (basic).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-13<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 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_WeightedAverageNumberOfSharesIssuedBasic</td>
</tr>
<tr>
<td style="padding-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>51
<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.3</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 (Details 2) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (450,348)<span></span>
</td>
<td class="nump">$ 58,962<span></span>
</td>
<td class="num">$ (1,943,457)<span></span>
</td>
<td class="num">$ (1,221,030)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesIssuedBasic', window );">Basic weighted-average shares</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,015,205<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_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted Weighted Average Shares</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="nump">20,096,751<span></span>
</td>
<td class="nump">20,046,195<span></span>
</td>
<td class="nump">19,984,179<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasicEarningsPerShareProForma', window );">Basic</a></td>
<td class="num">$ (0.02)<span></span>
</td>
<td class="nump">$ 0.00<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_DilutedEarningsPerShareProForma', window );">Diluted</a></td>
<td class="num">$ (0.02)<span></span>
</td>
<td class="nump">$ 0.00<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_StatementClassOfStockAxis=tomz_StockOptionsMember', window );">Stock Options</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of dilutive securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,888<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_StatementClassOfStockAxis=tomz_StockWarrantsMember', window );">Stock Warrants</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of dilutive securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,908<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_StatementClassOfStockAxis=tomz_PreferredStocksMember', window );">Preferred stocks</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of dilutive securities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<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_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_BasicEarningsPerShareProForma">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Pro forma basic earnings per share or earnings per unit, which is commonly presented in initial public offerings based on the terms of the offering.</p></div>
<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> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 1.B.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480148/855-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_BasicEarningsPerShareProForma</td>
</tr>
<tr>
<td style="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_DilutedEarningsPerShareProForma">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Pro forma diluted earnings per share, which is commonly presented in initial public offerings.</p></div>
<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> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 1.B.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480148/855-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_DilutedEarningsPerShareProForma</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_WeightedAverageNumberOfSharesIssuedBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 element represents the weighted average total number of shares issued throughout the period including the first (beginning balance outstanding) and last (ending balance outstanding) day of the period before considering any reductions (for instance, shares held in treasury) to arrive at the weighted average number of shares outstanding. Weighted average relates to the portion of time within a reporting period that common shares have been issued and outstanding to the total time in that period. Such concept is used in determining the weighted average number of shares outstanding for purposes of calculating earnings per share (basic).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-13<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 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_WeightedAverageNumberOfSharesIssuedBasic</td>
</tr>
<tr>
<td style="padding-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_StatementClassOfStockAxis=tomz_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_StockOptionsMember</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_StatementClassOfStockAxis=tomz_StockWarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_StockWarrantsMember</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_StatementClassOfStockAxis=tomz_PreferredStocksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_PreferredStocksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>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.3</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 (Details 3) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</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_tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of anti-dilutive</a></td>
<td class="nump">5,881,180<span></span>
</td>
<td class="nump">5,387,596<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_ShortTermDebtTypeAxis=us-gaap_ConvertibleDebtMember', window );">Convertible Debt [Member]</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_tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of anti-dilutive</a></td>
<td class="nump">2,508,000<span></span>
</td>
<td class="nump">2,080,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockOptionsMember', window );">Stock Options</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_tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of anti-dilutive</a></td>
<td class="nump">768,792<span></span>
</td>
<td class="nump">573,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightAxis=tomz_WarrantsMember', window );">Warrants</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_tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount', window );">Effect of anti-dilutive</a></td>
<td class="nump">2,604,388<span></span>
</td>
<td class="nump">2,734,596<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ShortTermDebtTypeAxis=us-gaap_ConvertibleDebtMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ShortTermDebtTypeAxis=us-gaap_ConvertibleDebtMember</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_StatementClassOfStockAxis=tomz_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_StockOptionsMember</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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>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.3</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 (Details 4) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=tomz_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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesTypeLeaseRevenue', window );">Sales, net</a></td>
<td class="nump">$ 732,000<span></span>
</td>
<td class="nump">$ 656,000<span></span>
</td>
<td class="nump">$ 1,325,000<span></span>
</td>
<td class="nump">$ 1,501,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=tomz_GeographicRegionMember', window );">Geographic Region [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesTypeLeaseRevenue', window );">Sales, net</a></td>
<td class="nump">2,012,000<span></span>
</td>
<td class="nump">2,542,000<span></span>
</td>
<td class="nump">4,619,000<span></span>
</td>
<td class="nump">6,670,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityNameAxis=tomz_UnitedStatesMember', 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesTypeLeaseRevenue', window );">Sales, net</a></td>
<td class="nump">1,280,000<span></span>
</td>
<td class="nump">1,886,000<span></span>
</td>
<td class="nump">3,294,000<span></span>
</td>
<td class="nump">5,169,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_SteraMistPRoductMember', window );">SteraMist PRoduct [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesTypeLeaseRevenue', window );">Sales, net</a></td>
<td class="nump">1,603,000<span></span>
</td>
<td class="nump">1,766,000<span></span>
</td>
<td class="nump">3,255,000<span></span>
</td>
<td class="nump">5,247,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_ServiceAndTrainingMember', window );">Service And Training [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesTypeLeaseRevenue', window );">Sales, net</a></td>
<td class="nump">409,000<span></span>
</td>
<td class="nump">776,000<span></span>
</td>
<td class="nump">1,364,000<span></span>
</td>
<td class="nump">1,423,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=tomz_ProductAndServiceRevenueMember', window );">Product and Service Revenue [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesTypeLeaseRevenue', window );">Sales, net</a></td>
<td class="nump">$ 2,012,000<span></span>
</td>
<td class="nump">$ 2,542,000<span></span>
</td>
<td class="nump">$ 4,619,000<span></span>
</td>
<td class="nump">$ 6,670,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SalesTypeLeaseRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 sales-type lease 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> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-6A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479773/842-30-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_SalesTypeLeaseRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_IncomeTaxAuthorityNameAxis=tomz_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;">us-gaap_IncomeTaxAuthorityNameAxis=tomz_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_IncomeTaxAuthorityNameAxis=tomz_GeographicRegionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxAuthorityNameAxis=tomz_GeographicRegionMember</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_IncomeTaxAuthorityNameAxis=tomz_UnitedStatesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IncomeTaxAuthorityNameAxis=tomz_UnitedStatesMember</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=tomz_SteraMistPRoductMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_SteraMistPRoductMember</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=tomz_ServiceAndTrainingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_ServiceAndTrainingMember</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=tomz_ProductAndServiceRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_ProductAndServiceRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>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.3</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 (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Jul. 07, 2017</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic', window );">Net income (loss)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,943,000)<span></span>
</td>
<td class="num">$ (1,221,000)<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_NetCashProvidedByUsedInContinuingOperations', window );">Cash used in operations</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">577,000<span></span>
</td>
<td class="nump">1,453,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 490,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">490,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>
</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_tomz_RetainedEarningAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(56,200,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(56,200,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>
</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_tomz_RecognizeRevenue', window );">Recognize revenue</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">309,752<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 211,724<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_tomz_SalesReturnsAllowanceDuringPeriod', window );">Allowance for sales returns</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">90,540<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">227,000<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_tomz_InventoryValuationReserve', window );">Inventory Reserve</a></td>
<td class="nump">868,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">868,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves', window );">Warranty Reserve</a></td>
<td class="nump">22,648<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,648<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,000<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_AdvertisingExpense', window );">Advertising And Promotional Expenses</a></td>
<td class="nump">24,000<span></span>
</td>
<td class="nump">$ 35,000<span></span>
</td>
<td class="nump">88,000<span></span>
</td>
<td class="nump">192,000<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_OtherResearchAndDevelopmentExpense', window );">Research and Development Expense</a></td>
<td class="nump">$ 11,000<span></span>
</td>
<td class="nump">$ 56,000<span></span>
</td>
<td class="nump">$ 139,000<span></span>
</td>
<td class="nump">$ 186,000<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_StockIssuedDuringPeriodSharesNewIssues', window );">Issued shares of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60,000<span></span>
</td>
<td class="nump">60,000<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_FederalDepositInsuranceCorporationPremiumExpense', window );">Cash Balances At Financial Institutions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 250,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>
</tr>
<tr class="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 );">Shares of common stock outstanding</a></td>
<td class="nump">20,075,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,075,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20,015,205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</a></td>
<td class="nump">250,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">250,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">250,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=tomz_EquityIncentivePlanOneMember', window );">2016 Equity Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Shares of common stock outstanding</a></td>
<td class="nump">5,900,000<span></span>
</td>
<td class="nump">5,700,000<span></span>
</td>
<td class="nump">5,900,000<span></span>
</td>
<td class="nump">5,700,000<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_CommonStockSharesAuthorized', window );">Common Stock, Shares Authorized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,000,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfWarrantOrRightAxis=tomz_WarrantsMember', window );">Warrants</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_PotentiallyDilutiveSecurities', window );">Potentially Dilutive Securities</a></td>
<td class="nump">2,604,388<span></span>
</td>
<td class="nump">2,765,846<span></span>
</td>
<td class="nump">2,604,388<span></span>
</td>
<td class="nump">2,765,846<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_StatementClassOfStockAxis=tomz_ConvertibleDebenturesMember', window );">Convertible debentures</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_PotentiallyDilutiveSecurities', window );">Potentially Dilutive Securities</a></td>
<td class="nump">2,508,000<span></span>
</td>
<td class="nump">2,080,000<span></span>
</td>
<td class="nump">2,508,000<span></span>
</td>
<td class="nump">2,080,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=tomz_StockOptionsMember', window );">Stock Options</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_PotentiallyDilutiveSecurities', window );">Potentially Dilutive Securities</a></td>
<td class="nump">768,792<span></span>
</td>
<td class="nump">805,042<span></span>
</td>
<td class="nump">768,792<span></span>
</td>
<td class="nump">805,042<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_StatementClassOfStockAxis=tomz_PreferredAStockMember', window );">Preferred A stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_tomz_PotentiallyDilutiveSecurities', window );">Potentially Dilutive Securities</a></td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=tomz_OneVendorsMember', window );">One Vendors | Accounts Payable</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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ConcentrationRiskPercentage', window );">Concentration Risk, Percentage</a></td>
<td class="nump">46.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">46.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=tomz_TwoVendorsMember', window );">Two Vendors | Cost of Sales [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ConcentrationRiskInPercentage', window );">Concentration Risk, In Percentage</a></td>
<td class="nump">59.00%<span></span>
</td>
<td class="nump">53.00%<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="nump">65.00%<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_tomz_ConcentrationRiskInPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ConcentrationRiskInPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_ConcentrationRiskPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ConcentrationRiskPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_InventoryValuationReserve">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_InventoryValuationReserve</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_PotentiallyDilutiveSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_PotentiallyDilutiveSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_RecognizeRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_RecognizeRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_RetainedEarningAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_RetainedEarningAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_SalesReturnsAllowanceDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SalesReturnsAllowanceDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_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_FederalDepositInsuranceCorporationPremiumExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Federal Deposit Insurance Corporation (FDIC) insurance.</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(14))<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_FederalDepositInsuranceCorporationPremiumExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_NetCashProvidedByUsedInContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, investing, and financing activities; attributable to continuing 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/2009/role/commonPracticeRef<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_NetCashProvidedByUsedInContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_NetIncomeLossAvailableToCommonStockholdersBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 7: 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 8: 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 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 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 6.B)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-5<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 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<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 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-11<br><br>Reference 14: 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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OtherResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 research and development 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 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 (a)<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)(1))<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_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="padding-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=tomz_EquityIncentivePlanOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_EquityIncentivePlanOneMember</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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember</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_StatementClassOfStockAxis=tomz_ConvertibleDebenturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_ConvertibleDebenturesMember</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_StatementClassOfStockAxis=tomz_StockOptionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_StockOptionsMember</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_StatementClassOfStockAxis=tomz_PreferredAStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_PreferredAStockMember</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=tomz_OneVendorsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_OneVendorsMember</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_ExtinguishmentOfDebtAxis=us-gaap_AccountsPayableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ExtinguishmentOfDebtAxis=us-gaap_AccountsPayableMember</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=tomz_TwoVendorsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_TwoVendorsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<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.3</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></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>INVENTORIES</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_InventoryFinishedGoods', window );">Finished Goods</a></td>
<td class="nump">$ 3,332,000<span></span>
</td>
<td class="nump">$ 3,800,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_InventoryRawMaterials', window );">Raw Materials</a></td>
<td class="nump">900,000<span></span>
</td>
<td class="nump">878,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_InventoryValuationReserves', window );">Inventory Reserve</a></td>
<td class="num">(868,000)<span></span>
</td>
<td class="num">(1,100,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_InventoryNet', window );">Total</a></td>
<td class="nump">$ 3,364,000<span></span>
</td>
<td class="nump">$ 3,578,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_InventoryFinishedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and LIFO reserves of completed merchandise or goods expected to be sold 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/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)(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_InventoryFinishedGoods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_InventoryRawMaterials">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 valuation and LIFO reserves of raw materials 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/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)(a)(4))<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_InventoryRawMaterials</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_InventoryValuationReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 reserve for inventory.</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_InventoryValuationReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>56
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>VENDOR DEPOSITS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ExtraordinaryAndUnusualItemsAbstract', window );"><strong>VENDOR DEPOSITS</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_Deposits', window );">Vendor deposits</a></td>
<td class="nump">$ 222,065<span></span>
</td>
<td class="nump">$ 35,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_Deposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of all deposit liabilities held by the entity, including foreign and domestic, interest and noninterest bearing; may include demand deposits, saving deposits, Negotiable Order of Withdrawal (NOW) and time deposits among 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> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(12))<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_Deposits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ExtraordinaryAndUnusualItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ExtraordinaryAndUnusualItemsAbstract</td>
</tr>
<tr>
<td style="padding-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>57
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</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_FurnitureAndFixturesGross', window );">Furniture And Fixtures</a></td>
<td class="nump">$ 458,652<span></span>
</td>
<td class="nump">$ 458,652<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_tomz_EquipmentsGross', window );">Equipment</a></td>
<td class="nump">2,316,200<span></span>
</td>
<td class="nump">2,301,803<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles', window );">Vehicles</a></td>
<td class="nump">66,170<span></span>
</td>
<td class="nump">66,170<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedComputerSoftwareGross', window );">Computer And Software</a></td>
<td class="nump">318,999<span></span>
</td>
<td class="nump">316,334<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeaseholdImprovementsGross', window );">Leasehold Improvements</a></td>
<td class="nump">393,381<span></span>
</td>
<td class="nump">393,381<span></span>
</td>
</tr>
<tr class="re">
<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 );">Tenant Improvement Allowance</a></td>
<td class="nump">405,000<span></span>
</td>
<td class="nump">405,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_PropertyPlantAndEquipmentGross', window );">Total cost of Property and Equipment</a></td>
<td class="nump">3,958,402<span></span>
</td>
<td class="nump">3,941,340<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: Accumulated Depreciation</a></td>
<td class="nump">3,279,874<span></span>
</td>
<td class="nump">3,065,891<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentOtherNet', window );">Property And Equipment, Net</a></td>
<td class="nump">$ 678,528<span></span>
</td>
<td class="nump">$ 875,449<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_EquipmentsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EquipmentsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_CapitalizedComputerSoftwareGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 capitalized costs for computer software, including but not limited to, acquired and internally developed computer software.</p></div>
<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> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalizedComputerSoftwareGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_FurnitureAndFixturesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.</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_FurnitureAndFixturesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LeaseholdImprovementsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of additions or improvements to assets held under a lease 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> -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_LeaseholdImprovementsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_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_PropertyPlantAndEquipmentOtherNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 depreciation of long-lived, physical assets used to produce goods and services and not intended for resale, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentOtherNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PublicUtilitiesPropertyPlantAndEquipmentVehicles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 end book value of vehicles owned by the public utility.</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_PublicUtilitiesPropertyPlantAndEquipmentVehicles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>58
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>PROPERTY AND EQUIPMENT (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>PROPERTY AND EQUIPMENT</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation</a></td>
<td class="nump">$ 60,822<span></span>
</td>
<td class="nump">$ 65,031<span></span>
</td>
<td class="nump">$ 184,587<span></span>
</td>
<td class="nump">$ 209,751<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_tomz_AmortizationOfTenantImprovementAllowance', window );">Amortization of tenant improvement allowance</a></td>
<td class="nump">$ 9,798<span></span>
</td>
<td class="nump">$ 9,798<span></span>
</td>
<td class="nump">$ 29,395<span></span>
</td>
<td class="nump">$ 29,395<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AmortizationOfTenantImprovementAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AmortizationOfTenantImprovementAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details) - Intellectual Property And Patents [Member] - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intellectual Property And Patents</a></td>
<td class="nump">$ 3,449,482<span></span>
</td>
<td class="nump">$ 3,350,031<span></span>
</td>
</tr>
<tr class="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 );">Less: Accumulated Amortization</a></td>
<td class="nump">2,952,102<span></span>
</td>
<td class="nump">2,930,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_FiniteLivedIntangibleAssetsNet', window );">Intangible Assets, Net</a></td>
<td class="nump">$ 497,380<span></span>
</td>
<td class="nump">$ 419,710<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_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478859/928-340-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_IntellectualPropertyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_IntellectualPropertyMember</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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details 1) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>INTANGIBLE 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_IndefiniteLivedTrademarks', window );">Trademarks</a></td>
<td class="nump">$ 861,825<span></span>
</td>
<td class="nump">$ 830,864<span></span>
</td>
</tr>
<tr class="re">
<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 );">Total Intangible Assets, Net</a></td>
<td class="nump">$ 1,359,205<span></span>
</td>
<td class="nump">$ 1,250,574<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_IndefiniteLivedTrademarks">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 (original costs adjusted for previously recognized amortization and impairment) as of the balance sheet date for the rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style for a projected indefinite period of 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/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 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(15))<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_IndefiniteLivedTrademarks</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>INTANGIBLE ASSETS (Details 2)<br></strong></div></th>
<th class="th">
<div>Sep. 30, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract', window );"><strong>Amortization</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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">April 1 - December 31, 2025</a></td>
<td class="nump">$ 7,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_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">December 31, 2026</a></td>
<td class="nump">28,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_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">December 31, 2027</a></td>
<td class="nump">28,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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">December 31, 2028</a></td>
<td class="nump">28,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_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">December 31, 2029</a></td>
<td class="nump">28,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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">378,000<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_tomz_FiniteLivedIntangibleAssetNet', window );">Total</a></td>
<td class="nump">$ 497,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_FiniteLivedIntangibleAssetNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_FiniteLivedIntangibleAssetNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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)(3)<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 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract</td>
</tr>
<tr>
<td style="padding-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>62
<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.3</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 (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>INTANGIBLE ASSETS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization Expense</a></td>
<td class="nump">$ 7,766<span></span>
</td>
<td class="nump">$ 4,878<span></span>
</td>
<td class="nump">$ 21,781<span></span>
</td>
<td class="nump">$ 14,633<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>LEASES (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</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_OperatingLeaseRightOfUseAsset', window );">Operating Lease Right Of Use Asset</a></td>
<td class="nump">$ 342,229<span></span>
</td>
<td class="nump">$ 399,254<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAbstract', window );"><strong>Liabilities</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_OperatingLeaseLiabilityCurrent', window );">Current Portion Of Long-term Operating Lease</a></td>
<td class="nump">139,917<span></span>
</td>
<td class="nump">129,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_OperatingLeaseLiabilityNoncurrent', window );">Long-term Operating Lease, Net Of Current Portion</a></td>
<td class="nump">407,781<span></span>
</td>
<td class="nump">513,395<span></span>
</td>
</tr>
<tr class="ro">
<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</a></td>
<td class="nump">$ 547,698<span></span>
</td>
<td class="nump">$ 642,527<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_LiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_LiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<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.3</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 1) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating Lease Expense</a></td>
<td class="nump">$ 39,329<span></span>
</td>
<td class="nump">$ 39,329<span></span>
</td>
<td class="nump">$ 117,986<span></span>
</td>
<td class="nump">$ 117,986<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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<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.3</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 2)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</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_tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm', window );">Weighted-average Remaining Lease Term: Operating Leases</a></td>
<td class="text">3 years 3 months<span></span>
</td>
<td class="text">4 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_LesseeOperatingLeaseDiscountRate', window );">Discount Rate: Operating Leases</a></td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_LesseeOperatingLeaseDiscountRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Discount rate used by lessee to determine present value of operating lease payments.</p></div>
<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 50<br> -Paragraph 3<br> -Subparagraph (c)(3)<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_LesseeOperatingLeaseDiscountRate</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<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.3</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 3) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm', window );">Cash Paid For Amounts Included In The Measurement Of Lease Liabilities</a></td>
<td class="nump">$ 42,825<span></span>
</td>
<td class="nump">$ 41,577<span></span>
</td>
<td class="nump">$ 126,395<span></span>
</td>
<td class="nump">$ 123,521<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_OperatingLeaseInitialDirectCostExpenseOverTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 initial direct cost recognized as expense over lease 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 842<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 11<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479341/842-30-25-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>67
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>LEASES (Details 4) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>LEASES</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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">October 1 - December 31, 2025</a></td>
<td class="nump">$ 42,825<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_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">December 31, 2026</a></td>
<td class="nump">175,153<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">December 31, 2027</a></td>
<td class="nump">180,408<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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">December 31, 2028</a></td>
<td class="nump">185,820<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">December 31, 2029</a></td>
<td class="nump">34,840<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total Minimum Lease Payments</a></td>
<td class="nump">619,046<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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: Interest</a></td>
<td class="nump">71,348<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_CapitalLeaseObligationsCurrent', window );">Imputed Value Of Lease Obligations</a></td>
<td class="nump">547,698<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Less: Current Portion</a></td>
<td class="nump">139,917<span></span>
</td>
<td class="nump">$ 129,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_OperatingLeaseLiabilityNoncurrent', window );">Long-term Portion Of Lease Obligations</a></td>
<td class="nump">$ 407,781<span></span>
</td>
<td class="nump">$ 513,395<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_CapitalLeaseObligationsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 capital lease obligation 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/otherTransitionRef<br> -Topic 840<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481161/840-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<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 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 840<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481192/840-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_CapitalLeaseObligationsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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_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/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: 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/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</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 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: 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_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: 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_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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/2009/role/commonPracticeRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-4<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 3<br> -Subparagraph (SX 210.12-04(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-3<br><br>Reference 4: 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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<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.3</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 Narrative)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
</tr>
<tr><th class="th">
<div>Apr. 30, 2018 </div>
<div>USD ($) </div>
<div>ft&#178;</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</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_tomz_TermLease', window );">Term Lease</a></td>
<td class="text">10 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_AreaOfLand', window );">Area Of Lease Facility | ft&#178;</a></td>
<td class="nump">9,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_OperatingLeasesRentExpenseNet', window );">Annual Rent Lease</a></td>
<td class="nump">$ 143,460<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_tomz_MaximumIncreasesRentPercentage', window );">Increases Rent Percentage Escalation Clause</a></td>
<td class="nump">3.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_WorkersCompensationDiscountPercent', window );">Discount Rate</a></td>
<td class="nump">7.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_PaymentsForProceedsFromTenantAllowance', window );">Landlord Tenant Improvement Allowance</a></td>
<td class="nump">$ 405,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_MaximumIncreasesRentPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_MaximumIncreasesRentPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_TermLease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_TermLease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AreaOfLand">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of land held.</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_AreaOfLand</td>
</tr>
<tr>
<td style="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:areaItemType</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_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_OperatingLeasesRentExpenseNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.</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 840<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481501/840-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_OperatingLeasesRentExpenseNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PaymentsForProceedsFromTenantAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cash outflow or inflow from monetary allowance granted by the landlord to a tenant to entice tenant to move into landlords building which will enable the tenant to prepare the leased premises for tenants occupancy.</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> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<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 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-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_PaymentsForProceedsFromTenantAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_WorkersCompensationDiscountPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percent discount applied to worker's compensation reserve liability to reduce the reserve to present 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/otherTransitionRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480081/944-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WorkersCompensationDiscountPercent</td>
</tr>
<tr>
<td style="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>69
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CLOUD COMPUTING SERVICE CONTRACT (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 31, 2020</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RisksAndUncertaintiesAbstract', window );"><strong>CLOUD COMPUTING SERVICE CONTRACT</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ProceedsFromServiceContractOfReceivables', window );">Annual payments on contract received</a></td>
<td class="nump">$ 30,409<span></span>
</td>
<td class="text">&#160;<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_PrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66,857<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66,857<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_tomz_AnnualPaymentsOnContractExpired', window );">Annual payments on contract expired</a></td>
<td class="text">May 2025<span></span>
</td>
<td class="text">&#160;<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_CostOfGoodsAndServicesSoldAmortization', window );">Amortization expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 3,766<span></span>
</td>
<td class="nump">$ 7,436<span></span>
</td>
<td class="nump">$ 11,297<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AnnualPaymentsOnContractExpired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AnnualPaymentsOnContractExpired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ProceedsFromServiceContractOfReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ProceedsFromServiceContractOfReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CostOfGoodsAndServicesSoldAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service.</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_CostOfGoodsAndServicesSoldAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_PrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets.</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_PrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONVERTIBLE DEBT (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract', window );"><strong>Convertible debt</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_tomz_ConvertibleNotesPayableGross', window );">Convertible notes</a></td>
<td class="nump">$ 3,135,000<span></span>
</td>
<td class="nump">$ 2,600,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_DebtIssuanceCostsLineOfCreditArrangementsNet', window );">Less: Debt issuance costs</a></td>
<td class="num">(366,456)<span></span>
</td>
<td class="num">(312,398)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GroundLeasesAccumulatedAmortization', window );">Accumulated amortization</a></td>
<td class="nump">125,509<span></span>
</td>
<td class="nump">72,892<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConvertibleNotesPayable', window );">Convertible notes, net</a></td>
<td class="nump">$ 2,894,053<span></span>
</td>
<td class="nump">$ 2,360,494<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ConvertibleNotesPayableGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ConvertibleNotesPayableGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_ConvertibleNotesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Including the current and noncurrent portions, carrying value as of the balance sheet date of a written promise to pay a note, initially due after one year or beyond the operating cycle if longer, which can be exchanged for a specified amount of one or more securities (typically common stock), at the option of the issuer or the holder.</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_ConvertibleNotesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract</td>
</tr>
<tr>
<td style="padding-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_DebtIssuanceCostsLineOfCreditArrangementsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization, of debt issuance costs related to line of credit arrangements. 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/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479359/835-30-S45-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_DebtIssuanceCostsLineOfCreditArrangementsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_GroundLeasesAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization on long-term land leases capitalized as part of real property.</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_GroundLeasesAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>71
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONVERTIBLE DEBT (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">2 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Nov. 30, 2023</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfFinancingCosts', window );">Amortization of deferred financing costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 18,323<span></span>
</td>
<td class="nump">$ 15,620<span></span>
</td>
<td class="nump">$ 52,617<span></span>
</td>
<td class="nump">$ 46,860<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_tomz_AmortizationOfFinancingCostsAdditions', window );">Additions 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="nump">54,058<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_AwardDateAxis=tomz_JuneTwoThousandTwentyFiveMember', window );">June 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ProceedsFromConvertiblePromissoryNotesIssuance', window );">Proceeds from convertible promissory notes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 535,000<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_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities', window );">Convertible promissory notes issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">428,000<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_tomz_DescriptionOfConvertibleNote', window );">Convertible note 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">The Notes are convertible into shares of our Common Stock, at the option of the holder, at a conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement)<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_InvestmentOwnedBalancePrincipalAmount', window );">Principal amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateDuringPeriod', window );">Interest rate</a></td>
<td class="nump">12.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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpenseDebt', window );">Interest expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,550<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">28,625<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesIssuedPricePerShare', window );">Exercise price</a></td>
<td class="nump">$ 1.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>
</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_AwardDateAxis=tomz_OctoberandNovemberTwoThousandTwentyThreeMember', window );">October and November 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_tomz_ProceedsFromConvertiblePromissoryNotesIssuance', window );">Proceeds from convertible promissory notes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,600,000<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_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities', window );">Convertible promissory notes issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,080,000<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_tomz_DescriptionOfConvertibleNote', window );">Convertible note 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">The Notes are convertible into shares of our Common Stock, at the option of the holder, at an initial conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#8220;fundamental change&#8221; occurs (as defined in the Securities Purchase Agreement)<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_InvestmentOwnedBalancePrincipalAmount', window );">Principal amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtInstrumentInterestRateDuringPeriod', window );">Interest rate</a></td>
<td class="nump">12.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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestExpenseDebt', window );">Interest expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 78,000<span></span>
</td>
<td class="nump">$ 78,000<span></span>
</td>
<td class="nump">$ 234,000<span></span>
</td>
<td class="nump">$ 234,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_SharesIssuedPricePerShare', window );">Exercise price</a></td>
<td class="nump">$ 1.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>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AmortizationOfFinancingCostsAdditions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AmortizationOfFinancingCostsAdditions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DescriptionOfConvertibleNote">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DescriptionOfConvertibleNote</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ProceedsFromConvertiblePromissoryNotesIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ProceedsFromConvertiblePromissoryNotesIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_AmortizationOfFinancingCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization expense attributable to debt issuance 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(8))<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 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 3: 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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-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_AmortizationOfFinancingCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_DebtInstrumentInterestRateDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 effective interest rate 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://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 1F<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 3: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentInterestRateDuringPeriod</td>
</tr>
<tr>
<td style="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_InterestExpenseDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the cost of borrowed funds accounted for as interest expense for 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 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(8))<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/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69E<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 69F<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481568/470-20-55-69F<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1F<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1F<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-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_InterestExpenseDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_InvestmentOwnedBalancePrincipalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 principal of investment owned.</p></div>
<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 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477439/946-210-55-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 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.12-12(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-12B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-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_InvestmentOwnedBalancePrincipalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SharesIssuedPricePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 per unit amount of equity securities issued.</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_SharesIssuedPricePerShare</td>
</tr>
<tr>
<td style="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_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued during the period as a result of the conversion of convertible securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -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://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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<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><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-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_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities</td>
</tr>
<tr>
<td style="padding-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_AwardDateAxis=tomz_JuneTwoThousandTwentyFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_JuneTwoThousandTwentyFiveMember</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_AwardDateAxis=tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_OctoberandNovemberTwoThousandTwentyThreeMember</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>72
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, end of period</a></td>
<td class="nump">768,792<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_StatementClassOfStockAxis=us-gaap_StockOptionMember', window );">Stock Option [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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Outstanding, beginning of period</a></td>
<td class="nump">805,042<span></span>
</td>
<td class="nump">617,542<span></span>
</td>
</tr>
<tr class="ro">
<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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">225,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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(31,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod', window );">Expired</a></td>
<td class="num">(36,250)<span></span>
</td>
<td class="num">(6,250)<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">768,792<span></span>
</td>
<td class="nump">805,042<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price outstanding, Beginning balance</a></td>
<td class="nump">$ 1.23<span></span>
</td>
<td class="nump">$ 1.38<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Granted</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0.75<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Exercised</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0.88<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_tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Expired</a></td>
<td class="num">(1.04)<span></span>
</td>
<td class="nump">0.80<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price outstanding, Ending balance</a></td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 1.23<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_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_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_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_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_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_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_StatementClassOfStockAxis=us-gaap_StockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_StockOptionMember</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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 1)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th">
<div>Sep. 30, 2025 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">768,792<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">6 years 9 months 21 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">768,792<span></span>
</td>
</tr>
<tr class="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 );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 1.24<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointSevenOneMember', window );">Range $0.71</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">7,042<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years 3 months 21 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">7,042<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.71<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointSevenFiveMember', window );">Range $0.75</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">225,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">8 years 7 months 17 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">225,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.75<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointEightZeroMember', window );">Range $0.80</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">2,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">2 years 3 months 25 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">2,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.80<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointEightFiveMember', window );">Range $0.85</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">210,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">7 years 3 months 29 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">210,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 0.85<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOnePointOneTwoMember', window );">Range $1.12</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">270,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">6 years 3 months 18 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">270,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 1.12<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOnePointNineThreeMember', window );">Range $1.93</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">10,500<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">1 year 2 months 15 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">10,500<span></span>
</td>
</tr>
<tr class="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 );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 1.93<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFourPointFourZeroMember', window );">Range $4.40</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">12,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">4 months 2 days<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">12,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 4.40<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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSevenPointZeroSixMember', window );">Range $7.06</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of outstanding shares</a></td>
<td class="nump">31,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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">3 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of Exercisable Options</a></td>
<td class="nump">31,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable Options | $ / shares</a></td>
<td class="nump">$ 7.06<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_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_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 option awards outstanding, 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointSevenOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointSevenOneMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointSevenFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointSevenFiveMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointEightZeroMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointEightZeroMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointEightFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeZeroPointEightFiveMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOnePointOneTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOnePointOneTwoMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOnePointNineThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeOnePointNineThreeMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFourPointFourZeroMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeFourPointFourZeroMember</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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSevenPointZeroSixMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_OptionIndexedToIssuersEquityEquityAxis=tomz_RangeSevenPointZeroSixMember</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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 2) - Warrants - $ / shares<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, beginning of period</a></td>
<td class="nump">2,765,846<span></span>
</td>
<td class="nump">2,772,096<span></span>
</td>
</tr>
<tr class="ro">
<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</a></td>
<td class="num">(161,458)<span></span>
</td>
<td class="num">(6,250)<span></span>
</td>
</tr>
<tr class="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, end of period</a></td>
<td class="nump">2,604,388<span></span>
</td>
<td class="nump">2,765,846<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price outstanding, Beginning balance</a></td>
<td class="nump">$ 2.26<span></span>
</td>
<td class="nump">$ 2.25<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Granted</a></td>
<td class="nump">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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Exercised</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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice', window );">Weighted average exercise price, Expired</a></td>
<td class="num">(1.19)<span></span>
</td>
<td class="num">(1.12)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted average exercise price outstanding, Ending balance</a></td>
<td class="nump">$ 2.32<span></span>
</td>
<td class="nump">$ 2.26<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_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_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_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_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_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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ClassOfWarrantOrRightAxis=tomz_WarrantsMember</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>75
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details 3)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr><th class="th">
<div>Sep. 30, 2025 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">6 years 9 months 21 days<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Exercisable Warrants</a></td>
<td class="nump">768,792<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 1.24<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=tomz_StockWarrantsMember', window );">Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">3 years 1 month 6 days<span></span>
</td>
</tr>
<tr class="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, Beginning Balance</a></td>
<td class="nump">2,604,388<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">2,604,388<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 2.32<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=tomz_WarrantsOneMember', window );">$ 0.64 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">8 years 1 month 20 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">31,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">31,250<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 0.64<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=tomz_WarrantsTwoMember', window );">$ 0.80 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">8 years 3 months 29 days<span></span>
</td>
</tr>
<tr class="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, Beginning Balance</a></td>
<td class="nump">125,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">125,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 0.80<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=tomz_WarrantsThreeMember', window );">$ 0.96 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">7 years 2 months 23 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">437,500<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Exercisable Warrants</a></td>
<td class="nump">437,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 0.96<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=tomz_WarrantsSevenMember', window );">$ 1.68 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">11 months 26 days<span></span>
</td>
</tr>
<tr class="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, Beginning Balance</a></td>
<td class="nump">1,434,721<span></span>
</td>
</tr>
<tr class="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 );">Exercisable Warrants</a></td>
<td class="nump">1,434,721<span></span>
</td>
</tr>
<tr class="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 );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 1.68<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=tomz_WarrantsEightMember', window );">$ 2.18 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">11 months 26 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">172,167<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Exercisable Warrants</a></td>
<td class="nump">172,167<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 2.18<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=tomz_WarrantsTenMember', window );">$ 4.00 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">4 years 6 months 25 days<span></span>
</td>
</tr>
<tr class="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, Beginning Balance</a></td>
<td class="nump">28,750<span></span>
</td>
</tr>
<tr class="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 );">Exercisable Warrants</a></td>
<td class="nump">28,750<span></span>
</td>
</tr>
<tr class="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 );">Weighted Average Exercise Price, Exercisable | $ / shares</a></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_us-gaap_AwardTypeAxis=tomz_WarrantsElevenMember', window );">$ 6.95 | Stock Warrants</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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Average Weighted Remaining Contractual Life in Years, Outstanding</a></td>
<td class="text">5 years 3 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber', window );">Outstanding, Beginning Balance</a></td>
<td class="nump">375,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable Warrants</a></td>
<td class="nump">375,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercisable | $ / shares</a></td>
<td class="nump">$ 6.95<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_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_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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 option awards outstanding, 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_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-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_StatementClassOfStockAxis=tomz_StockWarrantsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_StockWarrantsMember</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=tomz_WarrantsOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsOneMember</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=tomz_WarrantsTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsTwoMember</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=tomz_WarrantsThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsThreeMember</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=tomz_WarrantsSevenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsSevenMember</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=tomz_WarrantsEightMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsEightMember</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=tomz_WarrantsTenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsTenMember</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=tomz_WarrantsElevenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_WarrantsElevenMember</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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>SHAREHOLDERS EQUITY (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>May 31, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Common stock share issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60,000<span></span>
</td>
<td class="nump">60,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,752<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,152<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_SeriesBPreferredStockMember', window );">Convertible Series B Preferred Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,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 );">Convertible Preferred Stock, Shares Issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</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_tomz_CumulativeConvertiblePreferredStockStatedValue', window );">Convertible Preferred Stock, Stated Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,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_PreferredStockSharesOutstanding', window );">Convertible Preferred Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</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_tomz_CumulativeDividendOfPreferredStock', window );">Cumulative dividend</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7.50%<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_PreferredStockParOrStatedValuePerShare', window );">Convertible Preferred Stock, Par Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementClassOfStockAxis=us-gaap_SeriesAPreferredStockMember', window );">Convertible Series A Preferred Stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,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_PreferredStockSharesIssued', window );">Convertible Preferred Stock, Shares Issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
</tr>
<tr class="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 );">Convertible Preferred Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">63,750<span></span>
</td>
</tr>
<tr class="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 );">Convertible Preferred Stock, Par Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<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_AwardDateAxis=tomz_MayTwentyTwentyFiveMember', window );">May 2025 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Common stock share issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60,000<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_CommonStockValue', window );">Common stock value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardDateAxis=tomz_MayTwentyTwentyFourMember', window );">May 2024 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesNewIssues', window );">Common stock share issued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60,000<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_CommonStockValue', window );">Common stock value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 45,000<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_tomz_WarrantsIssuedUponPurchaseShareOfCommonStock', window );">Option to purchase of common stock</a></td>
<td class="nump">225,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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice', window );">Exercise price</a></td>
<td class="nump">$ 0.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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Fair value of stock option</a></td>
<td class="nump">$ 144,308<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1', window );">Contractual term</a></td>
<td class="text">10 years<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Volatility rate</a></td>
<td class="nump">125.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>
</tr>
<tr class="ro">
<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 );">Expected dividend yield</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>
</tr>
<tr class="re">
<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.35%<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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected life term</a></td>
<td class="text">10 years<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_tomz_GrantFairValueOfPerShare', window );">Grant fair value of per share</a></td>
<td class="nump">$ 0.64<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_tomz_CumulativeConvertiblePreferredStockStatedValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CumulativeConvertiblePreferredStockStatedValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_CumulativeDividendOfPreferredStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CumulativeDividendOfPreferredStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_GrantFairValueOfPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_GrantFairValueOfPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_WarrantsIssuedUponPurchaseShareOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_WarrantsIssuedUponPurchaseShareOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 term of the deferred compensation arrangement, 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 710<br> -SubTopic 10<br> -Section 55<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482943/710-10-55-7<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 (a)(2)<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_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1</td>
</tr>
<tr>
<td style="padding-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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.</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 (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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice</td>
</tr>
<tr>
<td style="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_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_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_StockIssuedDuringPeriodSharesNewIssues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 new stock issued during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 (a)<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)(1))<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_StockIssuedDuringPeriodSharesNewIssues</td>
</tr>
<tr>
<td style="padding-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_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_StatementClassOfStockAxis=us-gaap_SeriesBPreferredStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SeriesBPreferredStockMember</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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardDateAxis=tomz_MayTwentyTwentyFiveMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_MayTwentyTwentyFiveMember</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_AwardDateAxis=tomz_MayTwentyTwentyFourMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AwardDateAxis=tomz_MayTwentyTwentyFourMember</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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONTRACTS AND AGREEMENTS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="1">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>May 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionAxis=tomz_MrVanstonMember', window );">Mr. Vanston</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_SalariesAndWages', window );">Base annual salary</a></td>
<td class="nump">$ 230,000<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_tomz_DiscretionaryBonus', window );">Annual discretionary bonus</a></td>
<td class="nump">40.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_StockIssuedDuringPeriodSharesRestrictedStockAwardGross', window );">Restricted stock option granted</a></td>
<td class="nump">100,000<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_tomz_AdditionalRestrictedStockGranted', window );">Additional restricted stock option granted</a></td>
<td class="nump">100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_TitleOfIndividualAxis=tomz_CommitteeChairpersonMember', window );">Committee Chairperson</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_PaymentForManagementFee', window );">Increased annual fee</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 54,600<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=tomz_ExecutiveAgreementsWithElissaJShaneMember', window );">Executive Agreements (Elissa J. Shane)</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_SalariesAndWages', window );">Base annual salary</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 48,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AdditionalRestrictedStockGranted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AdditionalRestrictedStockGranted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DiscretionaryBonus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DiscretionaryBonus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_PaymentForManagementFee">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 paid to managing member or general partner for management of the day-to-day business functions of the limited liability company (LLC) or limited partnership (LP).</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 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 230<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477867/946-230-45-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-17<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentForManagementFee</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_SalariesAndWages">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and wage arising from service rendered by nonofficer employee. Excludes allocated cost, labor-related nonsalary expense, and direct and overhead labor cost included 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/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_SalariesAndWages</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_StockIssuedDuringPeriodSharesRestrictedStockAwardGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards.</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_StockIssuedDuringPeriodSharesRestrictedStockAwardGross</td>
</tr>
<tr>
<td style="padding-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_RelatedPartyTransactionAxis=tomz_MrVanstonMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=tomz_MrVanstonMember</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_TitleOfIndividualAxis=tomz_CommitteeChairpersonMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_CommitteeChairpersonMember</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=tomz_ExecutiveAgreementsWithElissaJShaneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_ExecutiveAgreementsWithElissaJShaneMember</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>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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract', window );"><strong>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</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_EmployeeRelatedLiabilitiesCurrentAndNoncurrent', window );">Commissions</a></td>
<td class="nump">$ 178,932<span></span>
</td>
<td class="nump">$ 187,151<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent', window );">Payroll And Related Costs</a></td>
<td class="nump">488,968<span></span>
</td>
<td class="nump">125,773<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_tomz_DirectorFeesCurrentAndNoncurrent', window );">Director Fees</a></td>
<td class="nump">37,650<span></span>
</td>
<td class="nump">37,650<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_tomz_SalesTaxPayable', window );">Sales Tax Payable</a></td>
<td class="nump">2,575<span></span>
</td>
<td class="nump">3,864<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ExtendedProductWarrantyAccrualCurrent', window );">Accrued Warranty (note 14)</a></td>
<td class="nump">22,648<span></span>
</td>
<td class="nump">30,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_OtherAccruedLiabilitiesCurrentAndNoncurrent', window );">Other accrued expenses and current liabilities</a></td>
<td class="nump">97,950<span></span>
</td>
<td class="nump">71,237<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Total</a></td>
<td class="nump">$ 828,723<span></span>
</td>
<td class="nump">$ 455,675<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_DirectorFeesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DirectorFeesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_SalesTaxPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SalesTaxPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_AccruedLiabilitiesAndOtherLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-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_AccruedPayrollTaxesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 payroll taxes incurred through that date and withheld from employees pertaining to services received from them, including entity's matching share of the employees FICA taxes and contributions to the state and federal unemployment insurance programs.</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(15)(5))<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_AccruedPayrollTaxesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_EmployeeRelatedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</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(15)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: 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)(15)(a))<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_EmployeeRelatedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ExtendedProductWarrantyAccrualCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid within one year of the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability.</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/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-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_ExtendedProductWarrantyAccrualCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OtherAccruedLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid 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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(5))<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_OtherAccruedLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>79
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>ACCRUED WARRANTY (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>ACCRUED WARRANTY</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_ExtendedProductWarrantyAccrual', window );">Beginning Accrued Warranty Costs</a></td>
<td class="nump">$ 30,000<span></span>
</td>
<td class="nump">$ 30,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_ProductWarrantyAccrualPeriodIncreaseDecrease', window );">Provision For Warranty Expense</a></td>
<td class="nump">15,637<span></span>
</td>
<td class="nump">9,707<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_tomz_SettlementOfWarrantyClaims', window );">Settlement Of Warranty Claims</a></td>
<td class="num">(22,989)<span></span>
</td>
<td class="num">(9,707)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ExtendedProductWarrantyAccrual', window );">Ending Accrued Warranty Cost</a></td>
<td class="nump">$ 22,648<span></span>
</td>
<td class="nump">$ 30,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_SettlementOfWarrantyClaims">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_SettlementOfWarrantyClaims</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_ExtendedProductWarrantyAccrual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 as of the balance sheet date of the aggregate extended product warranty liability. Does not include the ending balance for the standard product warranty 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 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-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_ExtendedProductWarrantyAccrual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_ProductWarrantyAccrualPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the standard and extended product warranty 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 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-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_ProductWarrantyAccrualPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<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.3</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 (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>INCOME TAXES</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_DeferredTaxAssetsValuationAllowance', window );">Net deferred tax assets valuation allowance</a></td>
<td class="nump">$ 9,223,000<span></span>
</td>
<td class="nump">$ 8,678,000<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_tomz_USDeferredTaxAssetsValuationAllowanceDescription', window );">Description of U.S. deferred tax assets valuation allowance</a></td>
<td class="text">it is more likely than not that the remaining U.S. deferred tax assets will not be realized, such that a 100% valuation allowance is required against U.S. deferred tax assets<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_tomz_USDeferredTaxAssetsValuationAllowanceDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_USDeferredTaxAssetsValuationAllowanceDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CUSTOMER CONCENTRATION (Details Narrative)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</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_tomz_RevenueConcentrationRiskPercentage', window );">Revenue Concentration Risk Percentage</a></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="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_FiniteLivedIntangibleAssetsByMajorClassAxis=tomz_CustomerListsOneMember', window );">One Customer [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>
</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_tomz_RevenueConcentrationRiskPercentage', window );">Revenue Concentration Risk Percentage</a></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="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_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | One Customer [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>
</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_tomz_AccountsReceivableConcentrationRiskPercentage', window );">Concentration Risk Percentage</a></td>
<td class="nump">23.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">18.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_MajorCustomersAxis=tomz_TwoCustomersMember', window );">Two Customers | Accounts Receivable [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>
</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_tomz_AccountsReceivableConcentrationRiskPercentage', window );">Concentration Risk Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
<td class="nump">40.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_AccountsReceivableConcentrationRiskPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_AccountsReceivableConcentrationRiskPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_tomz_RevenueConcentrationRiskPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_RevenueConcentrationRiskPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_FiniteLivedIntangibleAssetsByMajorClassAxis=tomz_CustomerListsOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_CustomerListsOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=tomz_TwoCustomersMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_TwoCustomersMember</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>82
<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.3</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>EMPLOYEE RETENTION CREDITS (Details Narrative) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">9 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 30, 2024</div></th>
<th class="th"><div>Sep. 30, 2025</div></th>
<th class="th"><div>Sep. 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_tomz_EmployeeRetentionCreditsAbstract', window );"><strong>EMPLOYEE RETENTION CREDITS</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherIncome', window );">Other Income</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 534,912<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_InterestIncomeOther', window );">Interest Income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 81,887<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_tomz_EmployeeRetentionCreditsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EmployeeRetentionCreditsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_InterestIncomeOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 earned from interest bearing 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 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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_OtherIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and income 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 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Subparagraph (SX 210.12-14(Column E)(Footnote 6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-6<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(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-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(1)(c))<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_OtherIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>83
<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.3</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 (Details Narrative) - Subsequent Event [Member] - USD ($)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">1 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Nov. 05, 2025</div></th>
<th class="th"><div>Oct. 31, 2025</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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Equity Purchase Agreement [Member]</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_tomz_CommonStockIsuable', window );">Common stock to be issued</a></td>
<td class="nump">52,000<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_tomz_ExcessInCommonStockPercentage', window );">Stock in excess</a></td>
<td class="nump">19.99%<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_tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock', window );">Commitment to sell common stock</a></td>
<td class="nump">$ 20,000,000<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_CommonStockNoParValue', window );">Common stock par value</a></td>
<td class="nump">$ 0.01<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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">CFO [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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">RSUs granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Non-employee director [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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">RSUs granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">40,000<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_tomz_DirectorFees', window );">Director fees</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,000<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_tomz_DescriptionOfVestingRestricatedStockUnits', window );">Vesting description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">the RSU grant will vest in full upon the earlier of (i) the first anniversary of the date of grant and (ii) immediately prior to the annual meeting of shareholders that occurs following the date of grant, subject to the non-employee director&#8217;s continued service to the Company through such vesting date<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_tomz_CommonStockIsuable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_CommonStockIsuable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DescriptionOfVestingRestricatedStockUnits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DescriptionOfVestingRestricatedStockUnits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_DirectorFees">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_DirectorFees</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</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_tomz_ExcessInCommonStockPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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;">tomz_ExcessInCommonStockPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>tomz_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>num: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_CommonStockNoParValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 per share of no-par value 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_CommonStockNoParValue</td>
</tr>
<tr>
<td style="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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</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=tomz_EquityPurchaseAgreementMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_EquityPurchaseAgreementMember</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_TitleOfIndividualAxis=srt_ChiefFinancialOfficerMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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_ChiefFinancialOfficerMember</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=tomz_NonEmployeeDirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" 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=tomz_NonEmployeeDirectorMember</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>84
<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>85
<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>87
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.3</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>176</ContextCount>
  <ElementCount>332</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>55</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>5</UnitCount>
  <MyReports>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000001 - Document - Cover</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/Cover</Role>
      <ShortName>Cover</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>110200 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedBalanceSheets</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>110201 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>124100 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>148600 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>170000 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited</Role>
      <ShortName>CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>170001 - Disclosure - Insider Trading Arragements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/InsiderTradingArragements</Role>
      <ShortName>Insider Trading Arragements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>200000 - Disclosure - DESCRIPTION OF BUSINESS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/DescriptionOfBusiness</Role>
      <ShortName>DESCRIPTION OF BUSINESS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>290000 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPolicies</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>340000 - Disclosure - INVENTORIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/INVENTORIES</Role>
      <ShortName>INVENTORIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>778000 - Disclosure - VENDOR DEPOSITS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/VendorDeposits</Role>
      <ShortName>VENDOR DEPOSITS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>778001 - Disclosure - PROPERTY AND EQUIPMENT</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipment</Role>
      <ShortName>PROPERTY AND EQUIPMENT</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>778002 - Disclosure - INTANGIBLE ASSETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssets</Role>
      <ShortName>INTANGIBLE ASSETS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>842000 - Disclosure - LEASES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LEASES</Role>
      <ShortName>LEASES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>842001 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CloudComputingServiceContract</Role>
      <ShortName>CLOUD COMPUTING SERVICE CONTRACT</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>842002 - Disclosure - CONVERTIBLE DEBT</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ConvertibleDebt</Role>
      <ShortName>CONVERTIBLE DEBT</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>842003 - Disclosure - SHAREHOLDERS EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquity</Role>
      <ShortName>SHAREHOLDERS EQUITY</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>842004 - Disclosure - COMMITMENTS AND CONTINGENCIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CommitmentsAndContingencies</Role>
      <ShortName>COMMITMENTS AND CONTINGENCIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>842005 - Disclosure - CONTRACTS AND AGREEMENTS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ContractsAndAgreements</Role>
      <ShortName>CONTRACTS AND AGREEMENTS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>842006 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities</Role>
      <ShortName>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>842007 - Disclosure - ACCRUED WARRANTY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedWarranty</Role>
      <ShortName>ACCRUED WARRANTY</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995000 - Disclosure - INCOME TAXES</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxes</Role>
      <ShortName>INCOME TAXES</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995001 - Disclosure - CUSTOMER CONCENTRATION</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CustomerConcentration</Role>
      <ShortName>CUSTOMER CONCENTRATION</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995002 - Disclosure - SEGMENT REPORTING</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SegmentReporting</Role>
      <ShortName>SEGMENT REPORTING</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995003 - Disclosure - EMPLOYEE RETENTION CREDITS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/EmployeeRetentionCredits</Role>
      <ShortName>EMPLOYEE RETENTION CREDITS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995004 - Disclosure - SUBSEQUENT EVENTS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SubsequentEvents</Role>
      <ShortName>SUBSEQUENT EVENTS</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995005 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995006 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995007 - Disclosure - INVENTORIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/InventoriesTables</Role>
      <ShortName>INVENTORIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/INVENTORIES</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995008 - Disclosure - PROPERTY AND EQUIPMENT (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipmentTables</Role>
      <ShortName>PROPERTY AND EQUIPMENT (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/PropertyAndEquipment</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995009 - Disclosure - INTANGIBLE ASSETS (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsTables</Role>
      <ShortName>INTANGIBLE ASSETS (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssets</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995010 - Disclosure - LEASES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesTables</Role>
      <ShortName>LEASES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/LEASES</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>995011 - Disclosure - CONVERTIBLE DEBT (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ConvertibleDebtTables</Role>
      <ShortName>CONVERTIBLE DEBT (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/ConvertibleDebt</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>995012 - Disclosure - SHAREHOLDERS EQUITY (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityTables</Role>
      <ShortName>SHAREHOLDERS EQUITY (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquity</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995013 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables</Role>
      <ShortName>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995014 - Disclosure - ACCRUED WARRANTY (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedWarrantyTables</Role>
      <ShortName>ACCRUED WARRANTY (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedWarranty</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995015 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>995016 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>995017 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>995018 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>995019 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>995020 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative</Role>
      <ShortName>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>995021 - Disclosure - INVENTORIES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/InventoriesDetails</Role>
      <ShortName>INVENTORIES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/InventoriesTables</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>995022 - Disclosure - VENDOR DEPOSITS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/VendorDepositsDetailsNarrative</Role>
      <ShortName>VENDOR DEPOSITS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/VendorDeposits</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>995023 - Disclosure - PROPERTY AND EQUIPMENT (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipmentDetails</Role>
      <ShortName>PROPERTY AND EQUIPMENT (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/PropertyAndEquipmentTables</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>995024 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/PropertyAndEquipmentDetailsNarrative</Role>
      <ShortName>PROPERTY AND EQUIPMENT (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/PropertyAndEquipmentTables</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>995025 - Disclosure - INTANGIBLE ASSETS (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetails</Role>
      <ShortName>INTANGIBLE ASSETS (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>995026 - Disclosure - INTANGIBLE ASSETS (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetails1</Role>
      <ShortName>INTANGIBLE ASSETS (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>995027 - Disclosure - INTANGIBLE ASSETS (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetails2</Role>
      <ShortName>INTANGIBLE ASSETS (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>995028 - Disclosure - INTANGIBLE ASSETS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IntangibleAssetsDetailsNarrative</Role>
      <ShortName>INTANGIBLE ASSETS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IntangibleAssetsTables</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>995029 - Disclosure - LEASES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails</Role>
      <ShortName>LEASES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>995030 - Disclosure - LEASES (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails1</Role>
      <ShortName>LEASES (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>995031 - Disclosure - LEASES (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails2</Role>
      <ShortName>LEASES (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>995032 - Disclosure - LEASES (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails3</Role>
      <ShortName>LEASES (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>54</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>995033 - Disclosure - LEASES (Details 4)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetails4</Role>
      <ShortName>LEASES (Details 4)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>55</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>995034 - Disclosure - LEASES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/LeasesDetailsNarrative</Role>
      <ShortName>LEASES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/LeasesTables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>995035 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CloudComputingServiceContractDetailsNarrative</Role>
      <ShortName>CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CloudComputingServiceContract</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>995036 - Disclosure - CONVERTIBLE DEBT (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ConvertibleDebtDetails</Role>
      <ShortName>CONVERTIBLE DEBT (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ConvertibleDebtTables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>995037 - Disclosure - CONVERTIBLE DEBT (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ConvertibleDebtDetailsNarrative</Role>
      <ShortName>CONVERTIBLE DEBT (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ConvertibleDebtTables</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>995038 - Disclosure - SHAREHOLDERS EQUITY (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>60</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>995039 - Disclosure - SHAREHOLDERS EQUITY (Details 1)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails1</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 1)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>995040 - Disclosure - SHAREHOLDERS EQUITY (Details 2)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails2</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 2)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>62</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>995041 - Disclosure - SHAREHOLDERS EQUITY (Details 3)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetails3</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details 3)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>995042 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ShareholdersEquityDetailsNarrative</Role>
      <ShortName>SHAREHOLDERS EQUITY (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ShareholdersEquityTables</ParentRole>
      <Position>64</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>995043 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/ContractsAndAgreementsDetailsNarrative</Role>
      <ShortName>CONTRACTS AND AGREEMENTS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/ContractsAndAgreements</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>995044 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails</Role>
      <ShortName>ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>995045 - Disclosure - ACCRUED WARRANTY (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/AccruedWarrantyDetails</Role>
      <ShortName>ACCRUED WARRANTY (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/AccruedWarrantyTables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>995046 - Disclosure - INCOME TAXES (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/IncomeTaxesDetailsNarrative</Role>
      <ShortName>INCOME TAXES (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/IncomeTaxes</ParentRole>
      <Position>68</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>995047 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/CustomerConcentrationDetailsNarrative</Role>
      <ShortName>CUSTOMER CONCENTRATION (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/CustomerConcentration</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>995048 - Disclosure - EMPLOYEE RETENTION CREDITS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative</Role>
      <ShortName>EMPLOYEE RETENTION CREDITS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/EmployeeRetentionCredits</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="tomz_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>995049 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://tomz.com/role/SubsequentEventsDetailsNarrative</Role>
      <ShortName>SUBSEQUENT EVENTS (Details Narrative)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://tomz.com/role/SubsequentEvents</ParentRole>
      <Position>71</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>tomz-20250930.xsd</File>
    <File>tomz-20250930_cal.xml</File>
    <File>tomz-20250930_def.xml</File>
    <File>tomz-20250930_lab.xml</File>
    <File>tomz-20250930_pre.xml</File>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="tomz_10q.htm">tomz_10q.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>tomz_10qimg2.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="682">http://fasb.org/us-gaap/2025</BaseTaxonomy>
    <BaseTaxonomy items="29">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>90
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "tomz_10q.htm": {
   "nsprefix": "tomz",
   "nsuri": "http://tomz.com/20250930",
   "dts": {
    "schema": {
     "local": [
      "tomz-20250930.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd",
      "http://www.xbrl.org/dtr/type/numeric-2009-12-16.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/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd",
      "https://xbrl.sec.gov/country/2025/country-2025.xsd",
      "https://xbrl.sec.gov/currency/2025/currency-2025.xsd",
      "https://xbrl.sec.gov/dei/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd",
      "https://xbrl.sec.gov/stpr/2025/stpr-2025.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "tomz-20250930_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "tomz-20250930_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "tomz-20250930_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "tomz-20250930_pre.xml"
     ]
    },
    "inline": {
     "local": [
      "tomz_10q.htm"
     ]
    }
   },
   "keyStandard": 274,
   "keyCustom": 58,
   "axisStandard": 18,
   "axisCustom": 0,
   "memberStandard": 13,
   "memberCustom": 42,
   "hidden": {
    "total": 27,
    "http://tomz.com/20250930": 3,
    "http://fasb.org/us-gaap/2025": 15,
    "http://xbrl.sec.gov/ecd/2025": 4,
    "http://xbrl.sec.gov/dei/2025": 5
   },
   "contextCount": 176,
   "entityCount": 1,
   "segmentCount": 55,
   "elementCount": 472,
   "unitCount": 5,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2025": 682,
    "http://xbrl.sec.gov/dei/2025": 29,
    "http://xbrl.sec.gov/ecd/2025": 4
   },
   "report": {
    "R1": {
     "role": "http://tomz.com/role/Cover",
     "longName": "000001 - Document - Cover",
     "shortName": "Cover",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "dei:EntityRegistrantName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "strong",
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
     "longName": "110200 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R3": {
     "role": "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
     "longName": "110201 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:DebtInstrumentUnamortizedDiscount",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:DebtInstrumentUnamortizedDiscount",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited",
     "longName": "124100 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:Revenues",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R5": {
     "role": "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
     "longName": "148600 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "AsOf2023-12-31_tomz_SeriesAPreferredStocksMember",
      "name": "us-gaap:SharesIssued",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2023-12-31_tomz_SeriesAPreferredStocksMember",
      "name": "us-gaap:SharesIssued",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R6": {
     "role": "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited",
     "longName": "170000 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)",
     "shortName": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R7": {
     "role": "http://tomz.com/role/InsiderTradingArragements",
     "longName": "170001 - Disclosure - Insider Trading Arragements",
     "shortName": "Insider Trading Arragements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "7",
     "firstAnchor": null,
     "uniqueAnchor": null
    },
    "R8": {
     "role": "http://tomz.com/role/DescriptionOfBusiness",
     "longName": "200000 - Disclosure - DESCRIPTION OF BUSINESS",
     "shortName": "DESCRIPTION OF BUSINESS",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R9": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPolicies",
     "longName": "290000 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://tomz.com/role/INVENTORIES",
     "longName": "340000 - Disclosure - INVENTORIES",
     "shortName": "INVENTORIES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://tomz.com/role/VendorDeposits",
     "longName": "778000 - Disclosure - VENDOR DEPOSITS",
     "shortName": "VENDOR DEPOSITS",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:VendorDepositsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:VendorDepositsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://tomz.com/role/PropertyAndEquipment",
     "longName": "778001 - Disclosure - PROPERTY AND EQUIPMENT",
     "shortName": "PROPERTY AND EQUIPMENT",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://tomz.com/role/IntangibleAssets",
     "longName": "778002 - Disclosure - INTANGIBLE ASSETS",
     "shortName": "INTANGIBLE ASSETS",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://tomz.com/role/LEASES",
     "longName": "842000 - Disclosure - LEASES",
     "shortName": "LEASES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:LeasesOfLesseeDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://tomz.com/role/CloudComputingServiceContract",
     "longName": "842001 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT",
     "shortName": "CLOUD COMPUTING SERVICE CONTRACT",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:CloudComputingServiceContractDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:CloudComputingServiceContractDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://tomz.com/role/ConvertibleDebt",
     "longName": "842002 - Disclosure - CONVERTIBLE DEBT",
     "shortName": "CONVERTIBLE DEBT",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://tomz.com/role/ShareholdersEquity",
     "longName": "842003 - Disclosure - SHAREHOLDERS EQUITY",
     "shortName": "SHAREHOLDERS EQUITY",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://tomz.com/role/CommitmentsAndContingencies",
     "longName": "842004 - Disclosure - COMMITMENTS AND CONTINGENCIES",
     "shortName": "COMMITMENTS AND CONTINGENCIES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://tomz.com/role/ContractsAndAgreements",
     "longName": "842005 - Disclosure - CONTRACTS AND AGREEMENTS",
     "shortName": "CONTRACTS AND AGREEMENTS",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:ContractsAndAgreementsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:ContractsAndAgreementsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities",
     "longName": "842006 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://tomz.com/role/AccruedWarranty",
     "longName": "842007 - Disclosure - ACCRUED WARRANTY",
     "shortName": "ACCRUED WARRANTY",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ProductWarrantyDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ProductWarrantyDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://tomz.com/role/IncomeTaxes",
     "longName": "995000 - Disclosure - INCOME TAXES",
     "shortName": "INCOME TAXES",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://tomz.com/role/CustomerConcentration",
     "longName": "995001 - Disclosure - CUSTOMER CONCENTRATION",
     "shortName": "CUSTOMER CONCENTRATION",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://tomz.com/role/SegmentReporting",
     "longName": "995002 - Disclosure - SEGMENT REPORTING",
     "shortName": "SEGMENT REPORTING",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://tomz.com/role/EmployeeRetentionCredits",
     "longName": "995003 - Disclosure - EMPLOYEE RETENTION CREDITS",
     "shortName": "EMPLOYEE RETENTION CREDITS",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:EmployeeRetentionCreditsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:EmployeeRetentionCreditsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://tomz.com/role/SubsequentEvents",
     "longName": "995004 - Disclosure - SUBSEQUENT EVENTS",
     "shortName": "SUBSEQUENT EVENTS",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies",
     "longName": "995005 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "27",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables",
     "longName": "995006 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "28",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://tomz.com/role/InventoriesTables",
     "longName": "995007 - Disclosure - INVENTORIES (Tables)",
     "shortName": "INVENTORIES (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "29",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://tomz.com/role/PropertyAndEquipmentTables",
     "longName": "995008 - Disclosure - PROPERTY AND EQUIPMENT (Tables)",
     "shortName": "PROPERTY AND EQUIPMENT (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "30",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://tomz.com/role/IntangibleAssetsTables",
     "longName": "995009 - Disclosure - INTANGIBLE ASSETS (Tables)",
     "shortName": "INTANGIBLE ASSETS (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "31",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://tomz.com/role/LeasesTables",
     "longName": "995010 - Disclosure - LEASES (Tables)",
     "shortName": "LEASES (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "32",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://tomz.com/role/ConvertibleDebtTables",
     "longName": "995011 - Disclosure - CONVERTIBLE DEBT (Tables)",
     "shortName": "CONVERTIBLE DEBT (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "33",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ConvertibleDebtTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ConvertibleDebtTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://tomz.com/role/ShareholdersEquityTables",
     "longName": "995012 - Disclosure - SHAREHOLDERS EQUITY (Tables)",
     "shortName": "SHAREHOLDERS EQUITY (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "34",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables",
     "longName": "995013 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "35",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R36": {
     "role": "http://tomz.com/role/AccruedWarrantyTables",
     "longName": "995014 - Disclosure - ACCRUED WARRANTY (Tables)",
     "shortName": "ACCRUED WARRANTY (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "36",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:ProductWarrantyDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:ProductWarrantyDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails",
     "longName": "995015 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
     "longName": "995016 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerSharePolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R39": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
     "longName": "995017 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2024-07-01to2024-09-30_tomz_StockOptionsMember",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R40": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
     "longName": "995018 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 3)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4",
     "longName": "995019 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details 4)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30_tomz_InternationalMember",
      "name": "us-gaap:SalesTypeLeaseRevenue",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "us-gaap:RevenueRecognitionPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30_tomz_InternationalMember",
      "name": "us-gaap:SalesTypeLeaseRevenue",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "ix:continuation",
       "us-gaap:RevenueRecognitionPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative",
     "longName": "995020 - Disclosure - SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
     "shortName": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:GoingConcernPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:GoingConcernPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://tomz.com/role/InventoriesDetails",
     "longName": "995021 - Disclosure - INVENTORIES (Details)",
     "shortName": "INVENTORIES (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:InventoryFinishedGoods",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:InventoryFinishedGoods",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://tomz.com/role/VendorDepositsDetailsNarrative",
     "longName": "995022 - Disclosure - VENDOR DEPOSITS (Details Narrative)",
     "shortName": "VENDOR DEPOSITS (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:Deposits",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:VendorDepositsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:Deposits",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:VendorDepositsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://tomz.com/role/PropertyAndEquipmentDetails",
     "longName": "995023 - Disclosure - PROPERTY AND EQUIPMENT (Details)",
     "shortName": "PROPERTY AND EQUIPMENT (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:FurnitureAndFixturesGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:FurnitureAndFixturesGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative",
     "longName": "995024 - Disclosure - PROPERTY AND EQUIPMENT (Details Narrative)",
     "shortName": "PROPERTY AND EQUIPMENT (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:Depreciation",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:Depreciation",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://tomz.com/role/IntangibleAssetsDetails",
     "longName": "995025 - Disclosure - INTANGIBLE ASSETS (Details)",
     "shortName": "INTANGIBLE ASSETS (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30_us-gaap_IntellectualPropertyMember",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30_us-gaap_IntellectualPropertyMember",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://tomz.com/role/IntangibleAssetsDetails1",
     "longName": "995026 - Disclosure - INTANGIBLE ASSETS (Details 1)",
     "shortName": "INTANGIBLE ASSETS (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:IndefiniteLivedTrademarks",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:IndefiniteLivedTrademarks",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://tomz.com/role/IntangibleAssetsDetails2",
     "longName": "995027 - Disclosure - INTANGIBLE ASSETS (Details 2)",
     "shortName": "INTANGIBLE ASSETS (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://tomz.com/role/IntangibleAssetsDetailsNarrative",
     "longName": "995028 - Disclosure - INTANGIBLE ASSETS (Details Narrative)",
     "shortName": "INTANGIBLE ASSETS (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://tomz.com/role/LeasesDetails",
     "longName": "995029 - Disclosure - LEASES (Details)",
     "shortName": "LEASES (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:OperatingLeaseLiability",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R52": {
     "role": "http://tomz.com/role/LeasesDetails1",
     "longName": "995030 - Disclosure - LEASES (Details 1)",
     "shortName": "LEASES (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://tomz.com/role/LeasesDetails2",
     "longName": "995031 - Disclosure - LEASES (Details 2)",
     "shortName": "LEASES (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ScheduleOfOtherInformationRelatedToLeasesTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ScheduleOfOtherInformationRelatedToLeasesTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://tomz.com/role/LeasesDetails3",
     "longName": "995032 - Disclosure - LEASES (Details 3)",
     "shortName": "LEASES (Details 3)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://tomz.com/role/LeasesDetails4",
     "longName": "995033 - Disclosure - LEASES (Details 4)",
     "shortName": "LEASES (Details 4)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://tomz.com/role/LeasesDetailsNarrative",
     "longName": "995034 - Disclosure - LEASES (Details Narrative)",
     "shortName": "LEASES (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "From2018-04-01to2018-04-30",
      "name": "tomz:TermLease",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2018-04-01to2018-04-30",
      "name": "tomz:TermLease",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "p",
       "us-gaap:LeasesOfLesseeDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative",
     "longName": "995035 - Disclosure - CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
     "shortName": "CLOUD COMPUTING SERVICE CONTRACT (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "From2020-05-01to2020-05-31",
      "name": "tomz:ProceedsFromServiceContractOfReceivables",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:CloudComputingServiceContractDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2020-05-01to2020-05-31",
      "name": "tomz:ProceedsFromServiceContractOfReceivables",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:CloudComputingServiceContractDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://tomz.com/role/ConvertibleDebtDetails",
     "longName": "995036 - Disclosure - CONVERTIBLE DEBT (Details)",
     "shortName": "CONVERTIBLE DEBT (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "tomz:ConvertibleNotesPayableGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ConvertibleDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "tomz:ConvertibleNotesPayableGross",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ConvertibleDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://tomz.com/role/ConvertibleDebtDetailsNarrative",
     "longName": "995037 - Disclosure - CONVERTIBLE DEBT (Details Narrative)",
     "shortName": "CONVERTIBLE DEBT (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:AmortizationOfFinancingCosts",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:AmortizationOfFinancingCosts",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://tomz.com/role/ShareholdersEquityDetails",
     "longName": "995038 - Disclosure - SHAREHOLDERS EQUITY (Details)",
     "shortName": "SHAREHOLDERS EQUITY (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2023-12-31_us-gaap_StockOptionMember",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R61": {
     "role": "http://tomz.com/role/ShareholdersEquityDetails1",
     "longName": "995039 - Disclosure - SHAREHOLDERS EQUITY (Details 1)",
     "shortName": "SHAREHOLDERS EQUITY (Details 1)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R62": {
     "role": "http://tomz.com/role/ShareholdersEquityDetails2",
     "longName": "995040 - Disclosure - SHAREHOLDERS EQUITY (Details 2)",
     "shortName": "SHAREHOLDERS EQUITY (Details 2)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "AsOf2024-12-31_tomz_WarrantsMember",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2023-12-31_tomz_WarrantsMember",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R63": {
     "role": "http://tomz.com/role/ShareholdersEquityDetails3",
     "longName": "995041 - Disclosure - SHAREHOLDERS EQUITY (Details 3)",
     "shortName": "SHAREHOLDERS EQUITY (Details 3)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30_tomz_StockWarrantsMember",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "tomz:ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R64": {
     "role": "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
     "longName": "995042 - Disclosure - SHAREHOLDERS EQUITY (Details Narrative)",
     "shortName": "SHAREHOLDERS EQUITY (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:StockIssuedDuringPeriodSharesNewIssues",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember",
      "name": "tomz:CumulativeConvertiblePreferredStockStatedValue",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R65": {
     "role": "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
     "longName": "995043 - Disclosure - CONTRACTS AND AGREEMENTS (Details Narrative)",
     "shortName": "CONTRACTS AND AGREEMENTS (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "From2025-05-01to2025-05-30_tomz_MrVanstonMember",
      "name": "us-gaap:SalariesAndWages",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-05-01to2025-05-30_tomz_MrVanstonMember",
      "name": "us-gaap:SalariesAndWages",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:ContractsAndAgreementsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R66": {
     "role": "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails",
     "longName": "995044 - Disclosure - ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
     "shortName": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R67": {
     "role": "http://tomz.com/role/AccruedWarrantyDetails",
     "longName": "995045 - Disclosure - ACCRUED WARRANTY (Details)",
     "shortName": "ACCRUED WARRANTY (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "AsOf2024-12-31",
      "name": "us-gaap:ExtendedProductWarrantyAccrual",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "us-gaap:ProductWarrantyDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2023-12-31",
      "name": "us-gaap:ExtendedProductWarrantyAccrual",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "us-gaap:ProductWarrantyDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R68": {
     "role": "http://tomz.com/role/IncomeTaxesDetailsNarrative",
     "longName": "995046 - Disclosure - INCOME TAXES (Details Narrative)",
     "shortName": "INCOME TAXES (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:DeferredTaxAssetsValuationAllowance",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-09-30",
      "name": "us-gaap:DeferredTaxAssetsValuationAllowance",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R69": {
     "role": "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
     "longName": "995047 - Disclosure - CUSTOMER CONCENTRATION (Details Narrative)",
     "shortName": "CUSTOMER CONCENTRATION (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:RevenueConcentrationRiskPercentage",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "1",
      "ancestors": [
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "tomz:RevenueConcentrationRiskPercentage",
      "unitRef": "Pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "1",
      "ancestors": [
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    },
    "R70": {
     "role": "http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative",
     "longName": "995048 - Disclosure - EMPLOYEE RETENTION CREDITS (Details Narrative)",
     "shortName": "EMPLOYEE RETENTION CREDITS (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "From2025-07-01to2025-09-30",
      "name": "us-gaap:OtherIncome",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "From2025-01-01to2025-09-30",
      "name": "us-gaap:InterestIncomeOther",
      "unitRef": "USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "tomz:EmployeeRetentionCreditsDisclosureTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "unique": true
     }
    },
    "R71": {
     "role": "http://tomz.com/role/SubsequentEventsDetailsNarrative",
     "longName": "995049 - Disclosure - SUBSEQUENT EVENTS (Details Narrative)",
     "shortName": "SUBSEQUENT EVENTS (Details Narrative)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember",
      "name": "tomz:CommonStockIsuable",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember",
      "name": "tomz:CommonStockIsuable",
      "unitRef": "Shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "p",
       "us-gaap:SubsequentEventsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "tomz_10q.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsAndFinancingReceivableAllowanceForCreditLoss",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Adjustment to allowance",
        "label": "[Accounts and Financing Receivable, Allowance for Credit Loss]",
        "documentation": "Amount of allowance for credit loss of accounts and financing receivables. Includes, but is not limited to, notes and loan receivable."
       }
      }
     },
     "auth_ref": [
      "r246"
     ]
    },
    "tomz_AccountsAndFinancingReceivableForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AccountsAndFinancingReceivableForCreditLoss",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Credit Loss Expense",
        "label": "[Credit Loss Expense]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilities"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES",
        "label": "Accounts Payable, Accrued Liabilities, and Other Liabilities Disclosure, Current [Text Block]",
        "documentation": "The entire disclosure for accounts payable, accrued expenses, and other liabilities that are classified as current at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r408"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts Payable",
        "label": "[Accounts Payable, Current]",
        "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": [
      "r28",
      "r737"
     ]
    },
    "us-gaap_AccountsPayableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts Payable",
        "label": "Accounts Payable [Member]",
        "documentation": "Obligations incurred and payable to vendors for goods and services received."
       }
      }
     },
     "auth_ref": [
      "r29"
     ]
    },
    "tomz_AccountsPayablePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AccountsPayablePolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts Payable",
        "label": "[Accounts Payable]",
        "documentation": "Custom Element."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_AccountsReceivableConcentrationRiskPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AccountsReceivableConcentrationRiskPercentage",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "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": [
      "r650",
      "r801"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable - net",
        "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": [
      "r810"
     ]
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedLiabilitiesAndOtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Expenses and Other Current Liabilities (Notes 13 and 14)",
        "verboseLabel": "Total",
        "documentation": "Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedLiabilitiesAndOtherLiabilitiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedPayrollTaxesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedPayrollTaxesCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payroll And Related Costs",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory payroll taxes incurred through that date and withheld from employees pertaining to services received from them, including entity's matching share of the employees FICA taxes and contributions to the state and federal unemployment insurance programs."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less: Accumulated Depreciation",
        "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": [
      "r20",
      "r117",
      "r529"
     ]
    },
    "us-gaap_AdditionalPaidInCapital": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapital",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Additional Paid-In Capital",
        "label": "[Additional Paid in Capital]",
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r737",
      "r924"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Additional Paid-In Capital",
        "label": "Additional Paid-in Capital [Member]",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r569",
      "r792",
      "r793",
      "r794",
      "r795",
      "r874",
      "r929"
     ]
    },
    "tomz_AdditionalRestrictedStockGranted": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AdditionalRestrictedStockGranted",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional restricted stock option granted"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments for convertible debt - as converted:",
        "documentation": "Adjustment to additional paid in capital resulting from the recognition of convertible debt instruments as two separate components - a debt component and an equity component. This bifurcation may result in a basis difference associated with the liability component that represents a temporary difference for purposes of applying accounting for income taxes. The initial recognition of deferred taxes for the tax effect of that temporary difference is as an adjustment to additional paid in capital."
       }
      }
     },
     "auth_ref": [
      "r21"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Compensation",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r369"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net (Loss) to Net Cash (Used) In Operating Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising and Promotional Expenses",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r99"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Advertising And Promotional Expenses",
        "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": [
      "r409",
      "r698"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for credit losses, net",
        "documentation": "Amount of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r246",
      "r251",
      "r252",
      "r254",
      "r892"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for credit losses",
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r124",
      "r246",
      "r251"
     ]
    },
    "tomz_AllowanceOnSalesReturns": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AllowanceOnSalesReturns",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales Returns Allowance"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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_AmortizationOfFinancingCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AmortizationOfFinancingCosts",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited",
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of Deferred Financing Costs",
        "verboseLabel": "Amortization of deferred financing costs",
        "documentation": "Amount of amortization expense attributable to debt issuance costs."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r335",
      "r783",
      "r878"
     ]
    },
    "tomz_AmortizationOfFinancingCostsAdditions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AmortizationOfFinancingCostsAdditions",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additions deferred financing costs"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetailsNarrative"
     ],
     "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."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r143",
      "r272",
      "r278",
      "r656",
      "r660",
      "r661",
      "r664",
      "r667"
     ]
    },
    "tomz_AmortizationOfTenantImprovementAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AmortizationOfTenantImprovementAllowance",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of tenant improvement allowance"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_AnnualPaymentsOnContractExpired": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AnnualPaymentsOnContractExpired",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual payments on contract expired"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_AntidilutiveExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "AntidilutiveExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of anti-dilutive"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Effect of dilutive securities",
        "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": [
      "r185"
     ]
    },
    "us-gaap_AreaOfLand": {
     "xbrltype": "areaItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AreaOfLand",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Area Of Lease Facility",
        "documentation": "Area of land held."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total Assets",
        "label": "[Assets]",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r74",
      "r87",
      "r120",
      "r152",
      "r154",
      "r155",
      "r188",
      "r204",
      "r230",
      "r234",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r444",
      "r448",
      "r479",
      "r514",
      "r515",
      "r522",
      "r604",
      "r682",
      "r683",
      "r694",
      "r737",
      "r741",
      "r742",
      "r754",
      "r833",
      "r834",
      "r886"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ASSETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "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": [
      "r112",
      "r129",
      "r152",
      "r154",
      "r155",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r444",
      "r448",
      "r479",
      "r737",
      "r833",
      "r834",
      "r886"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Assets:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AwardDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AwardDateAxis",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Date [Axis]",
        "documentation": "Information by date or year award under share-based payment arrangement is granted."
       }
      }
     },
     "auth_ref": [
      "r840",
      "r841",
      "r842",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r863",
      "r864",
      "r865",
      "r866",
      "r867"
     ]
    },
    "us-gaap_AwardDateDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AwardDateDomain",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Date or year award under share-based payment arrangement is granted."
       }
      }
     },
     "auth_ref": [
      "r840",
      "r841",
      "r842",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r863",
      "r864",
      "r865",
      "r866",
      "r867"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type Axis",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r370",
      "r371",
      "r372",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398"
     ]
    },
    "us-gaap_BasicEarningsPerShareProForma": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BasicEarningsPerShareProForma",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic per common share",
        "verboseLabel": "Basic",
        "documentation": "Pro forma basic earnings per share or earnings per unit, which is commonly presented in initial public offerings based on the terms of the offering."
       }
      }
     },
     "auth_ref": [
      "r508"
     ]
    },
    "us-gaap_BasisOfPresentationAndSignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BasisOfPresentationAndSignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basis of Presentation",
        "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": [
      "r784"
     ]
    },
    "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock",
     "presentation": [
      "http://tomz.com/role/DescriptionOfBusiness"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "DESCRIPTION OF BUSINESS",
        "label": "Business Description and Basis of Presentation [Text Block]",
        "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. 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)."
       }
      }
     },
     "auth_ref": [
      "r766",
      "r785"
     ]
    },
    "us-gaap_CapitalLeaseObligationsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CapitalLeaseObligationsCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Imputed Value Of Lease Obligations",
        "documentation": "Amount of capital lease obligation due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r83",
      "r94",
      "r95"
     ]
    },
    "us-gaap_CapitalizedComputerSoftwareGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CapitalizedComputerSoftwareGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer And Software",
        "documentation": "Amount before accumulated amortization of capitalized costs for computer software, including but not limited to, acquired and internally developed computer software."
       }
      }
     },
     "auth_ref": [
      "r277",
      "r653"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and cash equivalents",
        "documentation": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r115",
      "r657"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": [
      "r14"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash and Cash Equivalents",
        "periodStartLabel": "Cash and Cash Equivalents - Beginning",
        "periodEndLabel": "Cash and Cash Equivalents - Ending",
        "documentation": "Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r56",
      "r149"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "(Decrease) In Cash and Cash Equivalents",
        "label": "[Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Excluding Exchange Rate Effect, Including Discontinued Operation]",
        "documentation": "Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r56"
     ]
    },
    "srt_ChiefFinancialOfficerMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ChiefFinancialOfficerMember",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "CFO [Member]"
       }
      }
     },
     "auth_ref": [
      "r809"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CityAreaCode",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "ClassOfStockDomain",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r106",
      "r121",
      "r122",
      "r123",
      "r152",
      "r155",
      "r178",
      "r179",
      "r182",
      "r184",
      "r191",
      "r192",
      "r248",
      "r308",
      "r310",
      "r311",
      "r312",
      "r315",
      "r316",
      "r342",
      "r343",
      "r345",
      "r346",
      "r348",
      "r351",
      "r354",
      "r355",
      "r357",
      "r360",
      "r366",
      "r479",
      "r562",
      "r563",
      "r564",
      "r565",
      "r569",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r592",
      "r612",
      "r632",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r763",
      "r788",
      "r789",
      "r796"
     ]
    },
    "us-gaap_ClassOfWarrantOrRightAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ClassOfWarrantOrRightAxis",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class Of Warrant Or Right Axis",
        "documentation": "Information by type of warrant or right issued."
       }
      }
     },
     "auth_ref": [
      "r838"
     ]
    },
    "us-gaap_ClassOfWarrantOrRightDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ClassOfWarrantOrRightDomain",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the class or type of warrant or right outstanding. Warrants and rights represent derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_CloudComputingServiceContractDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CloudComputingServiceContractDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContract"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "CLOUD COMPUTING SERVICE CONTRACT",
        "label": "[CLOUD COMPUTING SERVICE CONTRACT]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 26.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies (Notes 7, 9 and 11)",
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r78",
      "r523",
      "r591"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "COMMITMENTS AND CONTINGENCIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/CommitmentsAndContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "COMMITMENTS AND CONTINGENCIES",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r63",
      "r297",
      "r298",
      "r651",
      "r824",
      "r828"
     ]
    },
    "tomz_CommitteeChairpersonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CommitteeChairpersonMember",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Committee Chairperson"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_CommonStockIsuable": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CommonStockIsuable",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock to be issued"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockMember",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r743",
      "r744",
      "r745",
      "r747",
      "r748",
      "r749",
      "r750",
      "r792",
      "r793",
      "r795",
      "r874",
      "r923",
      "r929"
     ]
    },
    "us-gaap_CommonStockNoParValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockNoParValue",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock par value",
        "documentation": "Face amount per share of no-par value common stock."
       }
      }
     },
     "auth_ref": [
      "r38"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Par Value",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r38"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Authorized",
        "verboseLabel": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r592"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Issued",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r38"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Shares Outstanding",
        "verboseLabel": "Shares of common stock outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r38",
      "r592",
      "r610",
      "r929",
      "r930"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common stock; par value $0.01 per share, 250,000,000 shares authorized; 20,075,205 and 20,015,205 shares issued and outstanding at September 30, 2025 and December 31, 2024, respectively",
        "verboseLabel": "Common stock value",
        "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": [
      "r38",
      "r343",
      "r350",
      "r525",
      "r737"
     ]
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r195",
      "r241",
      "r558",
      "r559",
      "r650",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r195",
      "r241",
      "r558",
      "r559",
      "r650",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentrations of Credit Risk",
        "documentation": "Disclosure of accounting policy for credit risk. Includes, but is not limited to, policy for entering into master netting arrangement or similar agreement to mitigate credit risk of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r473",
      "r476"
     ]
    },
    "us-gaap_ConcentrationRiskDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/CustomerConcentration"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "CUSTOMER CONCENTRATION",
        "label": "Concentration Risk Disclosure [Text Block]",
        "documentation": "The entire disclosure for any concentrations existing at the date of the financial statements that make an entity vulnerable to a reasonably possible, near-term, severe impact. This disclosure informs financial statement users about the general nature of the risk associated with the concentration, and may indicate the percentage of concentration risk as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r193",
      "r196",
      "r472",
      "r474",
      "r475",
      "r477",
      "r478",
      "r673",
      "r799"
     ]
    },
    "tomz_ConcentrationRiskInPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ConcentrationRiskInPercentage",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk, In Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ConcentrationRiskPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ConcentrationRiskPercentage",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Concentration Risk, Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://tomz.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": [
      "r25",
      "r670"
     ]
    },
    "us-gaap_ConstructionInProgressGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConstructionInProgressGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tenant Improvement Allowance",
        "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": [
      "r62"
     ]
    },
    "tomz_ContractsAndAgreementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ContractsAndAgreementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONTRACTS AND AGREEMENTS"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ContractsAndAgreementsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ContractsAndAgreementsTextBlock",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "CONTRACTS AND AGREEMENTS",
        "label": "[CONTRACTS AND AGREEMENTS]",
        "documentation": "Contracts and agreements text block."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ConvertibleDebenturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ConvertibleDebenturesMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible debentures"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ConvertibleDebtAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ConvertibleDebtAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONVERTIBLE DEBT"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConvertibleDebtMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConvertibleDebtMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible Debt [Member]",
        "documentation": "Borrowing which can be exchanged for a specified number of another security at the option of the issuer or the holder, for example, but not limited to, the entity's common stock."
       }
      }
     },
     "auth_ref": [
      "r65",
      "r318",
      "r319",
      "r326",
      "r327",
      "r328",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693"
     ]
    },
    "us-gaap_ConvertibleDebtTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConvertibleDebtTableTextBlock",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of convertible debt",
        "documentation": "Tabular disclosure of convertible debt instrument. Includes, but is not limited to, principal amount and amortized premium or discount."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConvertibleLongTermNotesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConvertibleLongTermNotesPayable",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible Notes Payable, net of discount of $240,947 and $239,506 at September 30, 2025 and December 31, 2024, respectively (Note 9)",
        "documentation": "Carrying value as of the balance sheet date of long-term debt (with maturities initially due after one year or beyond the operating cycle if longer) identified as Convertible Notes Payable, excluding current portion. Convertible Notes Payable is a written promise to pay a note which can be exchanged for a specified amount of another, related security, at the option of the issuer and the holder."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_ConvertibleNotesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConvertibleNotesPayable",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible notes, net",
        "documentation": "Including the current and noncurrent portions, carrying value as of the balance sheet date of a written promise to pay a note, initially due after one year or beyond the operating cycle if longer, which can be exchanged for a specified amount of one or more securities (typically common stock), at the option of the issuer or the holder."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r77",
      "r891"
     ]
    },
    "tomz_ConvertibleNotesPayableGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ConvertibleNotesPayableGross",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible notes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConvertibleSubordinatedDebtCurrentAndNoncurrentAbstract",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible debt"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfGoodsAndServicesSoldAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfGoodsAndServicesSoldAmortization",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization expense",
        "documentation": "Amount of expense for allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service."
       }
      }
     },
     "auth_ref": [
      "r778"
     ]
    },
    "us-gaap_CostOfRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfRevenue",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "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": [
      "r49",
      "r152",
      "r154",
      "r155",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r479",
      "r682",
      "r833"
     ]
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cost of Sales [Member]",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": [
      "r732"
     ]
    },
    "us-gaap_CostsAndExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostsAndExpensesAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Expenses:"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_CumulativeConvertiblePreferredStockStatedValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CumulativeConvertiblePreferredStockStatedValue",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible Preferred Stock, Stated Value"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_CumulativeDividendOfPreferredStock": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CumulativeDividendOfPreferredStock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative dividend"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_CumulativeDividendPercenatge": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CumulativeDividendPercenatge",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Dividend Percenatge"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_CustomerListsOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "CustomerListsOneMember",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "One Customer [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "ACCRUED WARRANTY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebt"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "CONVERTIBLE DEBT",
        "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": [
      "r64",
      "r152",
      "r153",
      "r288",
      "r289",
      "r290",
      "r291",
      "r292",
      "r306",
      "r307",
      "r317",
      "r320",
      "r321",
      "r322",
      "r323",
      "r324",
      "r325",
      "r329",
      "r336",
      "r337",
      "r338",
      "r454",
      "r491"
     ]
    },
    "us-gaap_DebtInstrumentInterestRateDuringPeriod": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentInterestRateDuringPeriod",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest rate",
        "documentation": "The average effective interest rate during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r332",
      "r877"
     ]
    },
    "us-gaap_DebtInstrumentUnamortizedDiscount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentUnamortizedDiscount",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt discount on convertible notes payable",
        "documentation": "Amount, after accumulated amortization, of debt discount."
       }
      }
     },
     "auth_ref": [
      "r835",
      "r876",
      "r877",
      "r879"
     ]
    },
    "us-gaap_DebtIssuanceCostsLineOfCreditArrangementsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtIssuanceCostsLineOfCreditArrangementsNet",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: Debt issuance costs",
        "label": "[Debt Issuance Costs, Line of Credit Arrangements, Net]",
        "documentation": "Amount, after accumulated amortization, of debt issuance costs related to line of credit arrangements. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs."
       }
      }
     },
     "auth_ref": [
      "r492"
     ]
    },
    "us-gaap_DeferredCompensationArrangementWithIndividualMaximumContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredCompensationArrangementWithIndividualMaximumContractualTerm1",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contractual term",
        "documentation": "Maximum term of the deferred compensation arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r24"
     ]
    },
    "us-gaap_DeferredRevenueCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredRevenueCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Revenue",
        "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r769"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "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": [
      "r870"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net 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": [
      "r423"
     ]
    },
    "us-gaap_Deposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Deposits",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/VendorDepositsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vendor deposits",
        "documentation": "The aggregate of all deposit liabilities held by the entity, including foreign and domestic, interest and noninterest bearing; may include demand deposits, saving deposits, Negotiable Order of Withdrawal (NOW) and time deposits among others."
       }
      }
     },
     "auth_ref": [
      "r75"
     ]
    },
    "us-gaap_DepositsAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DepositsAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vendor Deposits (Note 4)",
        "documentation": "Carrying value of amounts transferred to third parties for security purposes that are expected to be returned or applied towards payment within one year or during the operating cycle, if shorter."
       }
      }
     },
     "auth_ref": [
      "r775"
     ]
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Depreciation",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation",
        "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": [
      "r3",
      "r19",
      "r142",
      "r660",
      "r661",
      "r664",
      "r667"
     ]
    },
    "us-gaap_DepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DepreciationAndAmortization",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      },
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation and Amortization",
        "verboseLabel": "Depreciation and Amortization",
        "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": [
      "r3",
      "r19"
     ]
    },
    "tomz_DescriptionOfConvertibleNote": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "DescriptionOfConvertibleNote",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible note description"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_DescriptionOfVestingRestricatedStockUnits": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "DescriptionOfVestingRestricatedStockUnits",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting description"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DilutedEarningsPerShareProForma": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DilutedEarningsPerShareProForma",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted per common share",
        "verboseLabel": "Diluted",
        "documentation": "Pro forma diluted earnings per share, which is commonly presented in initial public offerings."
       }
      }
     },
     "auth_ref": [
      "r508"
     ]
    },
    "tomz_DirectorFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "DirectorFees",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Director fees"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_DirectorFeesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "DirectorFeesCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Director Fees"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of disaggregation of revenue",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r839"
     ]
    },
    "tomz_DiscretionaryBonus": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "DiscretionaryBonus",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual discretionary bonus"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r758"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r759"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentType",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net income (loss) Per Common Share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r137",
      "r164",
      "r165",
      "r166",
      "r167",
      "r168",
      "r169",
      "r170",
      "r171",
      "r175",
      "r178",
      "r182",
      "r183",
      "r184",
      "r187",
      "r341",
      "r399",
      "r437",
      "r442",
      "r467",
      "r468",
      "r513",
      "r535",
      "r672"
     ]
    },
    "us-gaap_EarningsPerShareBasicOtherDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareBasicOtherDisclosuresAbstract",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Number Of Common Shares Outstanding:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "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": [
      "r109",
      "r137",
      "r164",
      "r165",
      "r166",
      "r167",
      "r168",
      "r169",
      "r170",
      "r171",
      "r178",
      "r182",
      "r183",
      "r184",
      "r187",
      "r341",
      "r399",
      "r437",
      "r442",
      "r467",
      "r468",
      "r513",
      "r535",
      "r672"
     ]
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://tomz.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": [
      "r17",
      "r18",
      "r186"
     ]
    },
    "us-gaap_EmployeeRelatedLiabilitiesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeRelatedLiabilitiesCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commissions",
        "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."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r890"
     ]
    },
    "tomz_EmployeeRetentionCreditsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "EmployeeRetentionCreditsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "EMPLOYEE RETENTION CREDITS"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_EmployeeRetentionCreditsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "EmployeeRetentionCreditsDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/EmployeeRetentionCredits"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "EMPLOYEE RETENTION CREDITS",
        "label": "[EMPLOYEE RETENTION CREDITS]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address Address Line 1",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r756"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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/2025",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r756"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation State Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r762"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r756"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r756"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r756"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "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": [
      "r756"
     ]
    },
    "tomz_EquipmentsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "EquipmentsGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equipment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r6",
      "r107",
      "r108",
      "r109",
      "r133",
      "r134",
      "r135",
      "r159",
      "r160",
      "r161",
      "r163",
      "r170",
      "r172",
      "r174",
      "r190",
      "r249",
      "r250",
      "r285",
      "r340",
      "r367",
      "r399",
      "r427",
      "r428",
      "r434",
      "r435",
      "r436",
      "r438",
      "r441",
      "r442",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r466",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r493",
      "r494",
      "r502",
      "r534",
      "r551",
      "r552",
      "r553",
      "r569",
      "r632"
     ]
    },
    "tomz_EquityIncentivePlanOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "EquityIncentivePlanOneMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "2016 Equity Incentive Plan"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitment to sell common stock"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_EquityPurchaseAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "EquityPurchaseAgreementMember",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Purchase Agreement [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ExcessInCommonStockPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ExcessInCommonStockPercentage",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock in excess"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ExecutiveAgreementsWithElissaJShaneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ExecutiveAgreementsWithElissaJShaneMember",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Agreements (Elissa J. Shane)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ExtendedProductWarrantyAccrual": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ExtendedProductWarrantyAccrual",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning Accrued Warranty Costs",
        "label": "[Extended Product Warranty Accrual]",
        "periodEndLabel": "Ending Accrued Warranty Cost",
        "documentation": "Amount as of the balance sheet date of the aggregate extended product warranty liability. Does not include the ending balance for the standard product warranty liability."
       }
      }
     },
     "auth_ref": [
      "r831",
      "r832"
     ]
    },
    "us-gaap_ExtendedProductWarrantyAccrualCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ExtendedProductWarrantyAccrualCurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Warranty (note 14)",
        "documentation": "Amount at end of the reporting period of the aggregate extended product warranty liability that is expected to be paid within one year of the balance sheet date or normal operating cycle, if longer. Does not include the balance for the standard product warranty liability."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r831",
      "r832"
     ]
    },
    "us-gaap_ExtendedProductWarrantyPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ExtendedProductWarrantyPolicy",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Warranties",
        "documentation": "Disclosure of accounting policy for extended product warranties and other guarantee contracts including the methodology for measuring the liability."
       }
      }
     },
     "auth_ref": [
      "r829"
     ]
    },
    "us-gaap_ExtinguishmentOfDebtAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ExtinguishmentOfDebtAxis",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Extinguishment Of Debt Axis",
        "documentation": "Information by type of debt extinguished."
       }
      }
     },
     "auth_ref": [
      "r22"
     ]
    },
    "us-gaap_ExtinguishmentOfDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ExtinguishmentOfDebtTypeDomain",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of debt extinguished."
       }
      }
     },
     "auth_ref": [
      "r22"
     ]
    },
    "us-gaap_ExtraordinaryAndUnusualItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ExtraordinaryAndUnusualItemsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "VENDOR DEPOSITS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementPolicyPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Measurements",
        "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FederalDepositInsuranceCorporationPremiumExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FederalDepositInsuranceCorporationPremiumExpense",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Balances At Financial Institutions",
        "documentation": "Amount of expense for Federal Deposit Insurance Corporation (FDIC) insurance."
       }
      }
     },
     "auth_ref": [
      "r80"
     ]
    },
    "tomz_FiniteLivedIntangibleAssetNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "FiniteLivedIntangibleAssetNet",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total",
        "label": "[Total]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less: Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r260",
      "r277",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Thereafter",
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r820",
      "r933"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "April 1 - December 31, 2025",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r653",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "December 31, 2029",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r653",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "December 31, 2028",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r653",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "December 31, 2027",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r653",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "December 31, 2026",
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r279",
      "r653",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "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": [
      "r271",
      "r273",
      "r274",
      "r275",
      "r276",
      "r277",
      "r280",
      "r281",
      "r511",
      "r512",
      "r557",
      "r653",
      "r656",
      "r702",
      "r703",
      "r704",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r725",
      "r726",
      "r727",
      "r728"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intellectual Property And Patents",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r260",
      "r277",
      "r512",
      "r656"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r271",
      "r273",
      "r274",
      "r275",
      "r276",
      "r277",
      "r280",
      "r281",
      "r557",
      "r653",
      "r656",
      "r702",
      "r703",
      "r704",
      "r705",
      "r706",
      "r707",
      "r708",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r714",
      "r715",
      "r716",
      "r717",
      "r718",
      "r719",
      "r720",
      "r721",
      "r722",
      "r723",
      "r724",
      "r725",
      "r726",
      "r727",
      "r728"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets, Net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r511",
      "r819"
     ]
    },
    "us-gaap_FurnitureAndFixturesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FurnitureAndFixturesGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Furniture And Fixtures",
        "documentation": "Amount before accumulated depreciation of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "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": [
      "r51",
      "r616"
     ]
    },
    "tomz_GeographicRegionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "GeographicRegionMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographic Region [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_GoingConcernPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "GoingConcernPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Going Concern"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "INTANGIBLE ASSETS"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_GrantFairValueOfPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "GrantFairValueOfPerShare",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Grant fair value of per share"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "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": [
      "r47",
      "r49",
      "r86",
      "r152",
      "r154",
      "r155",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r479",
      "r676",
      "r682",
      "r798",
      "r805",
      "r806",
      "r807",
      "r808",
      "r833"
     ]
    },
    "us-gaap_GroundLeasesAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GroundLeasesAccumulatedAmortization",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated amortization",
        "documentation": "Accumulated amortization on long-term land leases capitalized as part of real property."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income (loss) 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": [
      "r48",
      "r81",
      "r86",
      "r514",
      "r516",
      "r531",
      "r663",
      "r666",
      "r669",
      "r676",
      "r682",
      "r798",
      "r805",
      "r806",
      "r807",
      "r808"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS (UNAUDITED)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement Location Axis",
        "documentation": "Information by location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r293",
      "r294",
      "r450",
      "r451",
      "r452",
      "r453",
      "r469",
      "r470",
      "r471",
      "r480",
      "r481",
      "r482",
      "r549",
      "r550",
      "r617",
      "r653",
      "r655",
      "r700",
      "r701",
      "r732",
      "r733",
      "r734",
      "r735",
      "r871",
      "r872",
      "r894"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r293",
      "r294",
      "r450",
      "r451",
      "r452",
      "r453",
      "r469",
      "r470",
      "r471",
      "r480",
      "r481",
      "r482",
      "r549",
      "r550",
      "r617",
      "r653",
      "r655",
      "r700",
      "r701",
      "r732",
      "r733",
      "r734",
      "r735",
      "r871",
      "r872",
      "r894"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxAuthorityNameAxis",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Authority, Name [Axis]",
        "documentation": "Information by name of taxing authority."
       }
      }
     },
     "auth_ref": [
      "r420",
      "r869"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxAuthorityNameDomain",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Named agency, division or body that levies income taxes, examines tax returns for compliance, or grants exemptions from or makes other decisions pertaining to income taxes."
       }
      }
     },
     "auth_ref": [
      "r420",
      "r869"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "INCOME TAXES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "INCOME TAXES",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r152",
      "r156",
      "r412",
      "r416",
      "r417",
      "r418",
      "r419",
      "r421",
      "r425",
      "r429",
      "r431",
      "r432",
      "r433",
      "r520",
      "r556",
      "r567",
      "r699"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision for Income Taxes (Note 15)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r105",
      "r152",
      "r173",
      "r174",
      "r188",
      "r212",
      "r234",
      "r415",
      "r416",
      "r430",
      "r537",
      "r663",
      "r666",
      "r669",
      "r699"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Taxes",
        "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": [
      "r132",
      "r413",
      "r414",
      "r421",
      "r422",
      "r424",
      "r426",
      "r561"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "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": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Expenses",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInDeferredRevenue",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Deferred Revenue",
        "label": "[Increase (Decrease) in Deferred Revenue]",
        "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r654"
     ]
    },
    "us-gaap_IncreaseDecreaseInDepositOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInDepositOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Vendor Deposits",
        "label": "[Increase (Decrease) in Deposit Assets]",
        "documentation": "The increase (decrease) during the reporting period in moneys or securities given as security including, but not limited to, contract, escrow, or earnest money deposits, retainage (if applicable), deposits with clearing organizations and others, collateral, or margin deposits."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventory",
        "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": [
      "r2"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingAssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingAssetsAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Decrease (Increase) in:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changes in Operating Assets and Liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingLeaseLiability",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease Liability",
        "documentation": "Amount of increase (decrease) in obligation for operating lease."
       }
      }
     },
     "auth_ref": [
      "r764",
      "r782"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingLiabilitiesAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInOtherCurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOtherCurrentAssets",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other Assets",
        "label": "[Increase (Decrease) in Other Current Assets]",
        "documentation": "Amount of increase (decrease) in current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r782"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInPrepaidExpense",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid Expenses",
        "label": "[Increase (Decrease) in Prepaid Expense]",
        "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_IndefiniteLivedTrademarks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IndefiniteLivedTrademarks",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trademarks",
        "documentation": "Carrying amount (original costs adjusted for previously recognized amortization and impairment) as of the balance sheet date for the rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style for a projected indefinite period of benefit."
       }
      }
     },
     "auth_ref": [
      "r768",
      "r821"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r760"
     ]
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/IntangibleAssets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "INTANGIBLE ASSETS",
        "label": "Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r270",
      "r282",
      "r284",
      "r652",
      "r653"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/IntangibleAssetsDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets - net (Note 6)",
        "verboseLabel": "Total Intangible Assets, Net",
        "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": [
      "r271",
      "r819",
      "r821"
     ]
    },
    "us-gaap_IntellectualPropertyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntellectualPropertyMember",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intellectual Property And Patents [Member]",
        "documentation": "Intangible asset arising from original creative thought. Include, but is not limited to, trademarks, patents, and copyrights."
       }
      }
     },
     "auth_ref": [
      "r813",
      "r814",
      "r815",
      "r816",
      "r817",
      "r819",
      "r822",
      "r823"
     ]
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestExpense",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OtherNonoperatingIncomeExpense",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Interest Expense",
        "label": "[Interest Expense, Operating and Nonoperating]",
        "documentation": "Amount of interest expense classified as operating and nonoperating. Includes, but is not limited to, cost of borrowing accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r188",
      "r204",
      "r208",
      "r214",
      "r234",
      "r490",
      "r682",
      "r683",
      "r926"
     ]
    },
    "us-gaap_InterestExpenseDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestExpenseDebt",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest expense",
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense for debt."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r333",
      "r339",
      "r692",
      "r693",
      "r926"
     ]
    },
    "us-gaap_InterestIncomeOperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestIncomeOperating",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OtherNonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income, Operating",
        "documentation": "Amount of operating interest income, including, but not limited to, amortization and accretion of premiums and discounts on securities."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r517",
      "r518",
      "r613",
      "r640",
      "r642",
      "r682",
      "r751",
      "r752",
      "r777",
      "r932"
     ]
    },
    "us-gaap_InterestIncomeOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestIncomeOther",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest Income",
        "documentation": "Amount of interest income earned from interest bearing assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r666"
     ]
    },
    "tomz_InterestOnConvertibleDebtNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "InterestOnConvertibleDebtNet",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Interest on convertible debt net of effective tax rate (28%)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Paid for Interest",
        "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": [
      "r144",
      "r147",
      "r148"
     ]
    },
    "tomz_InternationalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "InternationalMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "International [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_InventoryCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "InventoryCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventories - net (Note 3)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "INVENTORIES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/INVENTORIES"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": [
      "r255"
     ]
    },
    "us-gaap_InventoryFinishedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryFinishedGoods",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finished Goods",
        "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r772"
     ]
    },
    "us-gaap_InventoryLIFOReserveEffectOnIncomeNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryLIFOReserveEffectOnIncomeNet",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventory Reserve",
        "documentation": "The difference between the change in the inventory reserve representing the cumulative difference in cost between the first in, first out and the last in, first out inventory valuation methods and any LIFO decrement which have been reflected in the statement of income during the period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryNet",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total",
        "label": "[Inventory, Net]",
        "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": [
      "r126",
      "r658",
      "r737"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Inventories",
        "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": [
      "r98",
      "r114",
      "r125",
      "r255",
      "r256",
      "r257",
      "r509",
      "r671"
     ]
    },
    "us-gaap_InventoryRawMaterials": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryRawMaterials",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Raw Materials",
        "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r773"
     ]
    },
    "tomz_InventoryValuationReserve": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "InventoryValuationReserve",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventory Reserve",
        "label": "[Inventory Reserve]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryValuationReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InventoryValuationReserves",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/InventoriesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventory Reserve",
        "label": "[Inventory Valuation Reserves]",
        "documentation": "Amount of valuation reserve for inventory."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r774"
     ]
    },
    "us-gaap_InvestmentOwnedBalancePrincipalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InvestmentOwnedBalancePrincipalAmount",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Principal amount",
        "documentation": "Amount of principal of investment owned."
       }
      }
     },
     "auth_ref": [
      "r582",
      "r583",
      "r637",
      "r638",
      "r639",
      "r745"
     ]
    },
    "us-gaap_IssuanceOfStockAndWarrantsForServicesOrClaims": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IssuanceOfStockAndWarrantsForServicesOrClaims",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Value of Equity Issued for Services",
        "documentation": "Fair value of share-based compensation granted to nonemployees as payment for services rendered or acknowledged claims."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "tomz_JuneTwoThousandTwentyFiveMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "JuneTwoThousandTwentyFiveMember",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "June 2025"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeaseCostTableTextBlock",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of components of lease Expenses",
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income."
       }
      }
     },
     "auth_ref": [
      "r881"
     ]
    },
    "us-gaap_LeaseholdImprovementsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeaseholdImprovementsGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leasehold Improvements",
        "documentation": "Amount before accumulated depreciation of additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "LEASES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LeasesOfLesseeDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LeasesOfLesseeDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/LEASES"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "LEASES",
        "label": "Leases of Lessee Disclosure [Text Block]",
        "documentation": "The entire disclosure for lessee entity's leasing arrangements including, but not limited to, all of the following: (a.) The basis on which contingent rental payments are determined, (b.) The existence and terms of renewal or purchase options and escalation clauses, (c.) Restrictions imposed by lease agreements, such as those concerning dividends, additional debt, and further leasing."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_LegalFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LegalFees",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consulting Fees",
        "documentation": "The amount of expense provided in the period for legal costs incurred on or before the balance sheet date pertaining to resolved, pending or threatened litigation, including arbitration and mediation proceedings."
       }
      }
     },
     "auth_ref": [
      "r765",
      "r927",
      "r928"
     ]
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r497"
     ]
    },
    "us-gaap_LesseeOperatingLeaseDiscountRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseDiscountRate",
     "presentation": [
      "http://tomz.com/role/LeasesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Discount Rate: Operating Leases",
        "documentation": "Discount rate used by lessee to determine present value of operating lease payments."
       }
      }
     },
     "auth_ref": [
      "r736"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of maturities of operating lease payments",
        "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": [
      "r882"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Minimum Lease Payments",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r787",
      "r791",
      "r889"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "October 1 - December 31, 2025",
        "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": [
      "r498",
      "r787",
      "r791",
      "r889"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "December 31, 2029",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Five]",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r787",
      "r791",
      "r889"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "December 31, 2028",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Four]",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r787",
      "r791",
      "r889"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "December 31, 2027",
        "label": "[Lessee, Operating Lease, Liability, to be Paid, Year Three]",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r498",
      "r787",
      "r791",
      "r889"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "December 31, 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": [
      "r498",
      "r787",
      "r791",
      "r889"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Less: Interest",
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease."
       }
      }
     },
     "auth_ref": [
      "r498"
     ]
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 25.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "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": [
      "r10",
      "r29",
      "r30",
      "r31",
      "r33",
      "r34",
      "r35",
      "r36",
      "r152",
      "r154",
      "r155",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r445",
      "r448",
      "r449",
      "r479",
      "r590",
      "r675",
      "r694",
      "r754",
      "r833",
      "r886",
      "r887"
     ]
    },
    "us-gaap_LiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAbstract",
     "presentation": [
      "http://tomz.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "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": [
      "r43",
      "r79",
      "r527",
      "r737",
      "r741",
      "r742",
      "r786",
      "r790",
      "r812",
      "r875"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "LIABILITIES AND SHAREHOLDERS' EQUITY"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "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": [
      "r31",
      "r113",
      "r152",
      "r154",
      "r155",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r445",
      "r448",
      "r449",
      "r479",
      "r737",
      "r833",
      "r886",
      "r887"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total Long-Term Liabilities",
        "label": "[Liabilities, Noncurrent]",
        "documentation": "Amount of obligation due after one year or beyond the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r33",
      "r34",
      "r35",
      "r36",
      "r152",
      "r154",
      "r155",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r445",
      "r448",
      "r449",
      "r479",
      "r833",
      "r886",
      "r887"
     ]
    },
    "us-gaap_LiabilitiesNoncurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesNoncurrentAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Liabilities:"
       }
      }
     },
     "auth_ref": []
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Lived Assets Including Acquired Intangible Assets"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Major Customers Axis"
       }
      }
     },
     "auth_ref": [
      "r241",
      "r695",
      "r696",
      "r738",
      "r740",
      "r893",
      "r895",
      "r896",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r922"
     ]
    },
    "tomz_MaximumIncreasesRentPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "MaximumIncreasesRentPercentage",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increases Rent Percentage Escalation Clause"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_MayTwentyTwentyFiveMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "MayTwentyTwentyFiveMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "May 2025 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_MayTwentyTwentyFourMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "MayTwentyTwentyFourMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "May 2024 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_MrVanstonMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "MrVanstonMember",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Mr. Vanston"
       }
      }
     },
     "auth_ref": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "auth_ref": [
      "r241",
      "r695",
      "r696",
      "r738",
      "r740",
      "r893",
      "r895",
      "r896",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r922"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInContinuingOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInContinuingOperations",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash used in operations",
        "documentation": "Amount of cash inflow (outflow) from operating, investing, and financing activities; attributable to continuing operation."
       }
      }
     },
     "auth_ref": [
      "r781"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 26.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Cash Provided By Financing Activities",
        "label": "[Cash Provided by (Used in) Financing Activity, Including Discontinued Operation]",
        "documentation": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r146"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow From Financing Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 25.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Cash (Used) in Investing Activities",
        "label": "[Cash Provided by (Used in) Investing Activity, Including Discontinued Operation]",
        "documentation": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r146"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow From Investing Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 24.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Cash (Used) in Operating Activities",
        "label": "[Cash Provided by (Used in) Operating Activity, Including Discontinued Operation]",
        "documentation": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r57",
      "r58"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Flow From Operating Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net income (loss)",
        "label": "[Net Income (Loss) Attributable to Parent]",
        "verboseLabel": "Net Income (Loss)",
        "terseLabel": "Net Income (Loss)",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r58",
      "r82",
      "r109",
      "r111",
      "r130",
      "r131",
      "r135",
      "r152",
      "r154",
      "r155",
      "r158",
      "r162",
      "r166",
      "r167",
      "r168",
      "r169",
      "r170",
      "r173",
      "r174",
      "r180",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r341",
      "r344",
      "r347",
      "r352",
      "r399",
      "r437",
      "r442",
      "r468",
      "r479",
      "r533",
      "r611",
      "r630",
      "r631",
      "r663",
      "r666",
      "r669",
      "r752",
      "r833"
     ]
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasic",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net income (loss)",
        "label": "[Net Income (Loss) Available to Common Stockholders, Basic]",
        "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r139",
      "r166",
      "r167",
      "r168",
      "r169",
      "r175",
      "r176",
      "r181",
      "r184",
      "r344",
      "r347",
      "r352",
      "r442"
     ]
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasicAbstract",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (loss) Attributable To Common Shareholders Per Share:"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_NetLossAttributableToCommonShareholders": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "NetLossAttributableToCommonShareholders",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (loss) Attributable To Common Shareholders"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recent 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": []
    },
    "tomz_NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Service equipment reclassified from inventory to fixed assets"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_NonEmployeeDirectorMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "NonEmployeeDirectorMember",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-employee director [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://tomz.com/role/InsiderTradingArragements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non Rule 10b5-1 Arragement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://tomz.com/role/InsiderTradingArragements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non Rule 10b5-1 Arragement Treatment [Flag]"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Cash Investing and Financing Activities:"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_OctoberandNovemberTwoThousandTwentyThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "OctoberandNovemberTwoThousandTwentyThreeMember",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "October and November 2023"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_OneVendorsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "OneVendorsMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "One Vendors"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total 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": [
      "r669"
     ]
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income (loss) from Operations",
        "label": "[Operating Income (Loss)]",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r86",
      "r663",
      "r669",
      "r676",
      "r798",
      "r805",
      "r806",
      "r807",
      "r808"
     ]
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease Expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r880"
     ]
    },
    "us-gaap_OperatingLeaseInitialDirectCostExpenseOverTerm": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseInitialDirectCostExpenseOverTerm",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Paid For Amounts Included In The Measurement Of Lease Liabilities",
        "documentation": "Amount of operating lease initial direct cost recognized as expense over lease term."
       }
      }
     },
     "auth_ref": [
      "r500"
     ]
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total",
        "label": "[Operating Lease, Liability]",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r496"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current Portion of Long-Term Operating Lease (Note 7)",
        "verboseLabel": "Current Portion Of Long-term Operating Lease",
        "terseLabel": "Less: Current Portion",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r496"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesNoncurrent",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails",
      "http://tomz.com/role/LeasesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Long-Term Operating Lease, Net of Current Portion (Note 7)",
        "verboseLabel": "Long-term Operating Lease, Net Of Current Portion",
        "terseLabel": "Long-term Portion Of Lease Obligations",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r496"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Lease - Right of Use Asset (Note - 7)",
        "verboseLabel": "Operating Lease Right Of Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r495"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAssetAmortizationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseRightOfUseAssetAmortizationExpense",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amortization of Right of Use Asset",
        "documentation": "Amount of periodic reduction over lease term of carrying amount of right-of-use asset from operating lease."
       }
      }
     },
     "auth_ref": [
      "r783"
     ]
    },
    "tomz_OperatingLeaseWeightedAveragesRemainingLeaseTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "OperatingLeaseWeightedAveragesRemainingLeaseTerm",
     "presentation": [
      "http://tomz.com/role/LeasesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted-average Remaining Lease Term: Operating Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeasesOfLesseeDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of operating Leases",
        "documentation": "Tabular disclosure for lessee's operating leases. Includes, but is not limited to, description of lessee's operating lease, existence and terms of renewal or purchase options and escalation clauses, restrictions imposed by lease, such as those concerning dividends, additional debt, and further leasing, rent holidays, rent concessions, or leasehold improvement incentives and unusual provisions or conditions."
       }
      }
     },
     "auth_ref": [
      "r88",
      "r90",
      "r91",
      "r92",
      "r93"
     ]
    },
    "us-gaap_OperatingLeasesRentExpenseNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeasesRentExpenseNet",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual Rent Lease",
        "documentation": "Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income."
       }
      }
     },
     "auth_ref": [
      "r92"
     ]
    },
    "us-gaap_OptionIndexedToIssuersEquityEquityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OptionIndexedToIssuersEquityEquityAxis",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Option Indexed To Issuers Equity Equity Axis",
        "documentation": "Information by type of options indexed to an issuer's equity."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r27",
      "r72"
     ]
    },
    "us-gaap_OptionIndexedToIssuersEquityTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OptionIndexedToIssuersEquityTypeDomain",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of the type of freestanding contract issued by a Company that is indexed to, and potentially settled in, a Company's own stock. Specifically, the pertinent rights and privileges of the securities outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_OptionsExercisedAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "OptionsExercisedAmount",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Options Exercised, amount"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_OptionsExercisedShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "OptionsExercisedShares",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Options Exercised, shares"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "DESCRIPTION OF BUSINESS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAccruedLiabilitiesCurrentAndNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAccruedLiabilitiesCurrentAndNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other accrued expenses and current liabilities",
        "documentation": "Amount of expenses incurred but not yet paid classified as other."
       }
      }
     },
     "auth_ref": [
      "r76"
     ]
    },
    "us-gaap_OtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssets",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total Other Assets",
        "label": "[Other Assets]",
        "documentation": "Amount of assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r119",
      "r521",
      "r683",
      "r741",
      "r742",
      "r754"
     ]
    },
    "us-gaap_OtherAssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_OtherAssets",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Assets",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r128",
      "r737"
     ]
    },
    "us-gaap_OtherIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherIncome",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OtherNonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited",
      "http://tomz.com/role/EmployeeRetentionCreditsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Income (Note 18)",
        "verboseLabel": "Other Income",
        "documentation": "Amount of revenue and income classified as other."
       }
      }
     },
     "auth_ref": [
      "r536",
      "r614",
      "r641",
      "r642",
      "r643",
      "r741",
      "r742"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total Other Income (Expense)",
        "label": "[Other Nonoperating Income (Expense)]",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r731"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNonoperatingIncomeExpenseAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Income (Expense):"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherResearchAndDevelopmentExpense",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and Development Expense",
        "documentation": "Amount of other research and development expense."
       }
      }
     },
     "auth_ref": [
      "r868"
     ]
    },
    "us-gaap_PaymentForManagementFee": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentForManagementFee",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increased annual fee",
        "documentation": "Amount paid to managing member or general partner for management of the day-to-day business functions of the limited liability company (LLC) or limited partnership (LP)."
       }
      }
     },
     "auth_ref": [
      "r780",
      "r883",
      "r931"
     ]
    },
    "us-gaap_PaymentsForProceedsFromTenantAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsForProceedsFromTenantAllowance",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Landlord Tenant Improvement Allowance",
        "documentation": "Net cash outflow or inflow from monetary allowance granted by the landlord to a tenant to entice tenant to move into landlords building which will enable the tenant to prepare the leased premises for tenants occupancy."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r54"
     ]
    },
    "us-gaap_PaymentsToAcquireIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireIntangibleAssets",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Capitalized Patent and Trademark Costs",
        "label": "[Payments to Acquire Intangible Assets]",
        "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill."
       }
      }
     },
     "auth_ref": [
      "r55"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 21.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchase of Property and Equipment",
        "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": [
      "r55"
     ]
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name Axis",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r840",
      "r841",
      "r842",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r863",
      "r864",
      "r865",
      "r866",
      "r867"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r840",
      "r841",
      "r842",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r859",
      "r860",
      "r861",
      "r863",
      "r864",
      "r865",
      "r866",
      "r867"
     ]
    },
    "tomz_PotentiallyDilutiveSecurities": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "PotentiallyDilutiveSecurities",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Potentially Dilutive Securities"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_PreferredAStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "PreferredAStockMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred A stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Convertible Preferred Stock, Par Value",
        "verboseLabel": "Convertible Preferred Stock, Par Value",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r354"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Convertible Preferred Stock, shares authorized",
        "verboseLabel": "Preferred stock, Shares Authorized",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r592"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Convertible Preferred Stock, shares issued",
        "verboseLabel": "Convertible Preferred Stock, Shares Issued",
        "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": [
      "r37",
      "r354"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cumulative Convertible Preferred Stock, Shares outstanding",
        "verboseLabel": "Convertible Preferred Stock, Shares Outstanding",
        "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": [
      "r37",
      "r592",
      "r610",
      "r929",
      "r930"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 24.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock Value",
        "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": [
      "r37",
      "r343",
      "r349",
      "r524",
      "r737"
     ]
    },
    "tomz_PreferredStocksMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "PreferredStocksMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred stocks"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PrepaidExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseAndOtherAssets",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid expenses and other assets",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseCurrent",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid Expenses",
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r127",
      "r258",
      "r259",
      "r659"
     ]
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Reclassification of Accounts",
        "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error."
       }
      }
     },
     "auth_ref": [
      "r767"
     ]
    },
    "us-gaap_ProceedsFromConvertibleDebt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromConvertibleDebt",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 22.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Issuance of Convertible Notes",
        "documentation": "The cash inflow from the issuance of a long-term debt instrument which can be exchanged for a specified amount of another security, typically the entity's common stock, at the option of the issuer or the holder."
       }
      }
     },
     "auth_ref": [
      "r12"
     ]
    },
    "tomz_ProceedsFromConvertiblePromissoryNotesIssuance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ProceedsFromConvertiblePromissoryNotesIssuance",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from convertible promissory notes"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ProceedsFromServiceContractOfReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ProceedsFromServiceContractOfReceivables",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/CloudComputingServiceContractDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Annual payments on contract received"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 23.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds from Exercise of Options",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r9"
     ]
    },
    "tomz_ProductAndServiceRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ProductAndServiceRevenueMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service Revenue [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProductWarrantyAccrualPeriodIncreaseDecrease",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Provision For Warranty Expense",
        "documentation": "Amount of increase (decrease) in the standard and extended product warranty liability."
       }
      }
     },
     "auth_ref": [
      "r830"
     ]
    },
    "us-gaap_ProductWarrantyDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProductWarrantyDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/AccruedWarranty"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "ACCRUED WARRANTY",
        "label": "Product Warranty Disclosure [Text Block]",
        "documentation": "The entire disclosure for standard and extended product warranties and other product guarantee contracts, including a tabular reconciliation of the changes in the guarantor's aggregate product warranty liability for the reporting period."
       }
      }
     },
     "auth_ref": [
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304"
     ]
    },
    "us-gaap_ProfessionalFees": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProfessionalFees",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Professional Fees",
        "documentation": "A fee charged for services from professionals such as doctors, lawyers and accountants. The term is often expanded to include other professions, for example, pharmacists charging to maintain a medicinal profile of a client or customer."
       }
      }
     },
     "auth_ref": [
      "r666",
      "r682",
      "r752",
      "r927",
      "r928"
     ]
    },
    "us-gaap_ProfitLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProfitLoss",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net (Loss)",
        "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r109",
      "r111",
      "r130",
      "r131",
      "r145",
      "r152",
      "r154",
      "r155",
      "r158",
      "r162",
      "r170",
      "r173",
      "r174",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r341",
      "r399",
      "r437",
      "r442",
      "r443",
      "r446",
      "r447",
      "r468",
      "r479",
      "r514",
      "r516",
      "r532",
      "r568",
      "r611",
      "r630",
      "r631",
      "r729",
      "r730",
      "r753",
      "r776",
      "r833"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "PROPERTY AND EQUIPMENT"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "PROPERTY AND EQUIPMENT",
        "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": [
      "r61",
      "r102",
      "r103",
      "r104"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total cost of Property and Equipment",
        "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": [
      "r62",
      "r116",
      "r530"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment - net (Note 5)",
        "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": [
      "r5",
      "r499",
      "r519",
      "r530",
      "r737"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentOtherNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentOtherNet",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property And Equipment, Net",
        "documentation": "Amount after depreciation of long-lived, physical assets used to produce goods and services and not intended for resale, classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property and Equipment",
        "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": [
      "r5",
      "r102",
      "r103",
      "r528"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of property and equipment",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Loss Expense",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r138",
      "r140",
      "r253"
     ]
    },
    "us-gaap_PublicUtilitiesPropertyPlantAndEquipmentVehicles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PublicUtilitiesPropertyPlantAndEquipmentVehicles",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/PropertyAndEquipmentDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vehicles",
        "documentation": "Period end book value of vehicles owned by the public utility."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeFourPointFourZeroMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeFourPointFourZeroMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $4.40"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeOnePointNineThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeOnePointNineThreeMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $1.93"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeOnePointOneTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeOnePointOneTwoMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $1.12"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeSevenPointZeroSixMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeSevenPointZeroSixMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $7.06"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeZeroPointEightFiveMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeZeroPointEightFiveMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $0.85"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeZeroPointEightZeroMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeZeroPointEightZeroMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $0.80"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeZeroPointSevenFiveMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeZeroPointSevenFiveMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $0.75"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_RangeZeroPointSevenOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RangeZeroPointSevenOneMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Range $0.71"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ReceivablesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ReceivablesPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts Receivable",
        "label": "Receivable [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for receivable. Includes, but is not limited to, accounts receivable and financing receivable."
       }
      }
     },
     "auth_ref": [
      "r243",
      "r244",
      "r245",
      "r247",
      "r811"
     ]
    },
    "tomz_RecognizeRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RecognizeRevenue",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Recognize revenue"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionAxis",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transaction [Axis]",
        "documentation": "Information by type of related party transaction."
       }
      }
     },
     "auth_ref": [
      "r152",
      "r157",
      "r158",
      "r503",
      "r504",
      "r885"
     ]
    },
    "us-gaap_RelatedPartyTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionDomain",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Transaction between related party."
       }
      }
     },
     "auth_ref": [
      "r152",
      "r157",
      "r158",
      "r885"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and Development",
        "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": [
      "r411",
      "r653",
      "r663",
      "r664",
      "r682",
      "r888"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpensePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpensePolicy",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Research and Development Expenses",
        "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": [
      "r410"
     ]
    },
    "tomz_RetainedEarningAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RetainedEarningAccumulatedDeficit",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated deficit"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 23.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accumulated Deficit",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r67",
      "r526",
      "r554",
      "r555",
      "r566",
      "r593",
      "r737"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r107",
      "r108",
      "r109",
      "r159",
      "r160",
      "r161",
      "r163",
      "r170",
      "r172",
      "r174",
      "r249",
      "r250",
      "r285",
      "r340",
      "r399",
      "r427",
      "r428",
      "r434",
      "r435",
      "r436",
      "r438",
      "r441",
      "r442",
      "r455",
      "r457",
      "r458",
      "r460",
      "r466",
      "r493",
      "r494",
      "r551",
      "r553",
      "r569",
      "r929"
     ]
    },
    "tomz_RevenueConcentrationRiskPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "RevenueConcentrationRiskPercentage",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Concentration Risk Percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRecognitionPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition",
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources."
       }
      }
     },
     "auth_ref": [
      "r615"
     ]
    },
    "us-gaap_Revenues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Revenues",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales, net",
        "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss)."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r85",
      "r136",
      "r152",
      "r154",
      "r155",
      "r188",
      "r205",
      "r206",
      "r228",
      "r234",
      "r238",
      "r240",
      "r241",
      "r248",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r479",
      "r514",
      "r516",
      "r682",
      "r731",
      "r741",
      "r742",
      "r833"
     ]
    },
    "us-gaap_RisksAndUncertaintiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RisksAndUncertaintiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CLOUD COMPUTING SERVICE CONTRACT"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://tomz.com/role/InsiderTradingArragements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arragement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://tomz.com/role/InsiderTradingArragements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arragement Treatment [Flag]"
       }
      }
     },
     "auth_ref": [
      "r761"
     ]
    },
    "us-gaap_SalariesAndWages": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SalariesAndWages",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Base annual salary",
        "documentation": "Amount of expense for salary and wage arising from service rendered by nonofficer employee. Excludes allocated cost, labor-related nonsalary expense, and direct and overhead labor cost included in cost of good and service sold."
       }
      }
     },
     "auth_ref": [
      "r779"
     ]
    },
    "tomz_SalesReturnsAllowanceDuringPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "SalesReturnsAllowanceDuringPeriod",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Allowance for sales returns"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_SalesTaxPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "SalesTaxPayable",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Sales Tax Payable"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesTypeLeaseRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SalesTypeLeaseRevenue",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Sales, net",
        "label": "[Sales-type Lease, Revenue]",
        "documentation": "Amount of sales-type lease revenue."
       }
      }
     },
     "auth_ref": [
      "r189",
      "r501"
     ]
    },
    "us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://tomz.com/role/AccruedExpensesAndOtherCurrentLiabilitiesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of accrued expenses and other current liabilities",
        "documentation": "Tabular disclosure of the (a) carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business (accounts payable); (b) other payables; and (c) accrued liabilities. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer). An alternative caption includes accrued expenses."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_ScheduleOfAllowanceForCreditLossesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ScheduleOfAllowanceForCreditLossesTableTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of allowance for credit losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of anti-dilutive securities",
        "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of earnings per share",
        "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": [
      "r797"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of definite life of 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": [
      "r656",
      "r818"
     ]
    },
    "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of indefinite life of intangible assets",
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance and exist in perpetuity, by either major class or business segment."
       }
      }
     },
     "auth_ref": [
      "r656",
      "r821"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://tomz.com/role/InventoriesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of inventories",
        "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": [
      "r4",
      "r44",
      "r45",
      "r46"
     ]
    },
    "tomz_ScheduleOfOtherInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ScheduleOfOtherInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Other Information Related To Leases"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of warranty reserve activity",
        "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability."
       }
      }
     },
     "auth_ref": [
      "r305"
     ]
    },
    "us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfStockOptionsRollForwardTableTextBlock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of stock options outstanding",
        "documentation": "Tabular disclosure of the change in stock options."
       }
      }
     },
     "auth_ref": [
      "r843"
     ]
    },
    "us-gaap_ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of stock warrants outstanding",
        "documentation": "Tabular disclosure of warrants or rights issued. Warrants and rights outstanding are derivative securities that give the holder the right to purchase securities (usually equity) from the issuer at a specific price within a certain time frame. Warrants are often included in a new debt issue to entice investors by a higher return potential. The main difference between warrants and call options is that warrants are issued and guaranteed by the company, whereas options are exchange instruments and are not issued by the company. Also, the lifetime of a warrant is often measured in years, while the lifetime of a typical option is measured in months. Disclose the title of issue of securities called for by warrants and rights outstanding, the aggregate amount of securities called for by warrants and rights outstanding, the date from which the warrants or rights are exercisable, and the price at which the warrant or right is exercisable."
       }
      }
     },
     "auth_ref": [
      "r838"
     ]
    },
    "tomz_ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of warrants outstanding and exercisable by price range"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://tomz.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of approximate future amortization",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r656",
      "r820"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "Security12bTitle",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security 12b Title",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r755"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r757"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentDomain",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "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": [
      "r84",
      "r85",
      "r86",
      "r87",
      "r188",
      "r201",
      "r204",
      "r205",
      "r206",
      "r207",
      "r208",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r215",
      "r216",
      "r218",
      "r219",
      "r220",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r234",
      "r235",
      "r236",
      "r241",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r283",
      "r295",
      "r296",
      "r439",
      "r440",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r679",
      "r682",
      "r683",
      "r688",
      "r739",
      "r893",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r922"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "SEGMENT REPORTING"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/SegmentReporting"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": [
      "r87",
      "r188",
      "r200",
      "r201",
      "r202",
      "r203",
      "r204",
      "r217",
      "r219",
      "r220",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r238",
      "r239",
      "r241",
      "r677",
      "r680",
      "r681",
      "r682",
      "r684",
      "r686",
      "r687"
     ]
    },
    "us-gaap_SegmentReportingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingPolicyPolicyTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Segments",
        "documentation": "Disclosure of accounting policy for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r237",
      "r240",
      "r678",
      "r679",
      "r685"
     ]
    },
    "us-gaap_SellingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingExpense",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling Expenses",
        "documentation": "Expenses recognized in the period that are directly related to the selling and distribution of products or services."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r141",
      "r662",
      "r665",
      "r668"
     ]
    },
    "us-gaap_SeriesAPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SeriesAPreferredStockMember",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible Series A Preferred Stock",
        "documentation": "Series A preferred stock."
       }
      }
     },
     "auth_ref": [
      "r770",
      "r771",
      "r836",
      "r837"
     ]
    },
    "tomz_SeriesAPreferredStocksMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "SeriesAPreferredStocksMember",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Series A Preferred Stock"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SeriesBPreferredStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SeriesBPreferredStockMember",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible Series B Preferred Stock",
        "documentation": "Series B preferred stock."
       }
      }
     },
     "auth_ref": [
      "r770",
      "r771",
      "r836",
      "r837"
     ]
    },
    "tomz_ServiceAndTrainingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ServiceAndTrainingMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Service And Training [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_SettlementOfWarrantyClaims": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "SettlementOfWarrantyClaims",
     "crdr": "debit",
     "presentation": [
      "http://tomz.com/role/AccruedWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Settlement Of Warranty Claims",
        "label": "[Settlement Of Warranty Claims]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Compensation Expense",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "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": [
      "r697"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "RSUs granted",
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r385"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Exercise price",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Exercise Price]",
        "documentation": "Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award."
       }
      }
     },
     "auth_ref": [
      "r862"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected dividend yield",
        "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": [
      "r396"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Volatility rate",
        "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": [
      "r395"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "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": [
      "r397"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Expired",
        "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": [
      "r70"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Non-Option Equity Instruments, Outstanding, Number]",
        "periodEndLabel": "Outstanding, end of period",
        "verboseLabel": "Outstanding, Beginning Balance",
        "documentation": "Number of equity instruments other than options outstanding, including both vested and non-vested instruments."
       }
      }
     },
     "auth_ref": [
      "r68",
      "r69"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Exercisable Options",
        "verboseLabel": "Exercisable Warrants",
        "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": [
      "r376"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Exercise Price, Exercisable Options",
        "verboseLabel": "Weighted Average Exercise Price, Exercisable",
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r376"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Expired",
        "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": [
      "r381"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Granted",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r378"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Outstanding, beginning of period",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number]",
        "periodEndLabel": "Outstanding, end of period",
        "verboseLabel": "Number of outstanding shares",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r374",
      "r375"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Weighted average exercise price outstanding, Beginning balance",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price]",
        "periodEndLabel": "Weighted average exercise price outstanding, Ending balance",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r374",
      "r375"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of options outstanding and exercisable by price range",
        "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": [
      "r8"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r370",
      "r371",
      "r372",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price, Exercised",
        "negatedLabel": "Weighted average exercise price, Exercised",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r379"
     ]
    },
    "tomz_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price, Expired"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Weighted average exercise price, Expired",
        "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": [
      "r381"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted average exercise price, Granted",
        "verboseLabel": "Weighted average exercise price, Granted",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r378"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Equity Compensation Expense",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "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": [
      "r368",
      "r373",
      "r392",
      "r393",
      "r394",
      "r395",
      "r398",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Expected life 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": [
      "r394"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Average Weighted Remaining Contractual Life in Years, Outstanding",
        "verboseLabel": "Average Weighted Remaining Contractual Life in Years, Outstanding",
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r71"
     ]
    },
    "us-gaap_SharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharesIssued",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance, shares",
        "label": "[Shares, Issued]",
        "periodEndLabel": "Balance, shares",
        "documentation": "Number of shares of stock issued as of the balance sheet date, including shares that had been issued and were previously outstanding but which are now held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_SharesIssuedPricePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharesIssuedPricePerShare",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Exercise price",
        "documentation": "Per share or per unit amount of equity securities issued."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermDebtTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermDebtTypeAxis",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Short-Term Debt, Type [Axis]",
        "documentation": "Information by type of short-term debt arrangement."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r825",
      "r826",
      "r827"
     ]
    },
    "us-gaap_ShortTermDebtTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShortTermDebtTypeDomain",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing."
       }
      }
     },
     "auth_ref": [
      "r28",
      "r825",
      "r826",
      "r827"
     ]
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES",
        "label": "Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r150",
      "r151"
     ]
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement Business Segments Axis",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r84",
      "r85",
      "r86",
      "r87",
      "r110",
      "r188",
      "r201",
      "r204",
      "r205",
      "r206",
      "r207",
      "r208",
      "r209",
      "r210",
      "r211",
      "r212",
      "r213",
      "r215",
      "r216",
      "r218",
      "r219",
      "r220",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r234",
      "r235",
      "r236",
      "r241",
      "r261",
      "r262",
      "r263",
      "r264",
      "r265",
      "r266",
      "r267",
      "r268",
      "r269",
      "r283",
      "r287",
      "r295",
      "r296",
      "r439",
      "r440",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r679",
      "r682",
      "r683",
      "r688",
      "r739",
      "r893",
      "r895",
      "r896",
      "r897",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r905",
      "r906",
      "r907",
      "r908",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r922"
     ]
    },
    "us-gaap_StatementClassOfStockAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementClassOfStockAxis",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement Class Of Stock Axis",
        "documentation": "Information by the different classes of stock of the entity."
       }
      }
     },
     "auth_ref": [
      "r106",
      "r121",
      "r122",
      "r123",
      "r152",
      "r155",
      "r178",
      "r179",
      "r182",
      "r184",
      "r191",
      "r192",
      "r248",
      "r308",
      "r310",
      "r311",
      "r312",
      "r315",
      "r316",
      "r342",
      "r343",
      "r345",
      "r346",
      "r348",
      "r351",
      "r354",
      "r355",
      "r357",
      "r360",
      "r366",
      "r479",
      "r562",
      "r563",
      "r564",
      "r565",
      "r569",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r592",
      "r612",
      "r632",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r763",
      "r788",
      "r789",
      "r796"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r38",
      "r41",
      "r42",
      "r107",
      "r108",
      "r109",
      "r133",
      "r134",
      "r135",
      "r159",
      "r160",
      "r161",
      "r163",
      "r170",
      "r172",
      "r174",
      "r190",
      "r249",
      "r250",
      "r285",
      "r340",
      "r367",
      "r399",
      "r427",
      "r428",
      "r434",
      "r435",
      "r436",
      "r438",
      "r441",
      "r442",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r466",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r493",
      "r494",
      "r502",
      "r534",
      "r551",
      "r552",
      "r553",
      "r569",
      "r632"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementLineItems",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative",
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/IntangibleAssetsDetails",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "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": [
      "r159",
      "r160",
      "r161",
      "r190",
      "r342",
      "r343",
      "r345",
      "r348",
      "r494",
      "r510",
      "r560",
      "r570",
      "r581",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r592",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r615",
      "r616",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r632",
      "r666",
      "r669",
      "r746",
      "r925"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS (UNAUDITED)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED BALANCE SHEETS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "CONDENSED CONSOLIDATED STATEMENTS OF SHAREHOLDERS EQUITY (UNAUDITED)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementTable",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedBalanceSheetsParenthetical",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited",
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative",
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative",
      "http://tomz.com/role/IntangibleAssetsDetails",
      "http://tomz.com/role/ShareholdersEquityDetails",
      "http://tomz.com/role/ShareholdersEquityDetails1",
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement [Table]",
        "documentation": "Presentation of information about comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r159",
      "r160",
      "r161",
      "r190",
      "r242",
      "r342",
      "r343",
      "r345",
      "r348",
      "r494",
      "r510",
      "r560",
      "r570",
      "r581",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r592",
      "r595",
      "r596",
      "r597",
      "r598",
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r605",
      "r606",
      "r607",
      "r608",
      "r609",
      "r615",
      "r616",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623",
      "r624",
      "r625",
      "r626",
      "r627",
      "r628",
      "r629",
      "r632",
      "r666",
      "r669",
      "r746",
      "r925"
     ]
    },
    "tomz_SteraMistPRoductMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "SteraMistPRoductMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "SteraMist PRoduct [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities",
     "presentation": [
      "http://tomz.com/role/ConvertibleDebtDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Convertible promissory notes issued",
        "documentation": "Number of shares issued during the period as a result of the conversion of convertible securities."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r23",
      "r38",
      "r41",
      "r67",
      "r330"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesIssuedForServices": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesIssuedForServices",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Issued for Services Provided, shares",
        "documentation": "Number of shares issued in lieu of cash for services contributed to the entity. Number of shares includes, but is not limited to, shares issued for services contributed by vendors and founders."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Issued shares of common stock",
        "verboseLabel": "Common stock share issued",
        "documentation": "Number of new stock issued during the period."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r37",
      "r38",
      "r67",
      "r562",
      "r632",
      "r645"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restricted stock option granted",
        "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r67"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Exercised",
        "label": "[Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period]",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r37",
      "r38",
      "r67",
      "r379"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueIssuedForServices": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueIssuedForServices",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Issued for Services Provided, amount",
        "documentation": "Value of stock issued in lieu of cash for services contributed to the entity. Value of the stock issued includes, but is not limited to, services contributed by vendors and founders."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair value of stock option",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r38",
      "r41",
      "r42",
      "r67"
     ]
    },
    "us-gaap_StockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockOptionMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Option [Member]",
        "documentation": "Contracts conveying rights, but not obligations, to buy or sell a specific quantity of stock at a specified price during a specified period (an American option) or at a specified date (a European option)."
       }
      }
     },
     "auth_ref": [
      "r745",
      "r873"
     ]
    },
    "tomz_StockOptionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "StockOptionsMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Options"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_StockWarrantsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "StockWarrantsMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Warrants"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 27.0
      }
     },
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets",
      "http://tomz.com/role/CondensedConsolidatedStatementsOfShareholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total Shareholders' Equity",
        "label": "[Equity, Attributable to Parent]",
        "periodStartLabel": "Balance, amount",
        "periodEndLabel": "Balance, amount",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r41",
      "r42",
      "r59",
      "r594",
      "r610",
      "r633",
      "r634",
      "r737",
      "r754",
      "r786",
      "r789",
      "r790",
      "r812",
      "r875",
      "r929"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedBalanceSheets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shareholders' Equity:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "SHAREHOLDERS' EQUITY",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r66",
      "r353",
      "r355",
      "r356",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r365",
      "r367",
      "r454",
      "r465",
      "r635",
      "r636",
      "r649"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r489",
      "r506"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type Axis",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r489",
      "r506"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r489",
      "r506"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "SUBSEQUENT EVENTS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://tomz.com/role/SubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "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": [
      "r505",
      "r507"
     ]
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information:"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_SupplementalCashFlowInformationRelatedToLeasesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "SupplementalCashFlowInformationRelatedToLeasesTableTextBlock",
     "presentation": [
      "http://tomz.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information Related To Leases"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_TermLease": {
     "xbrltype": "durationItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "TermLease",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Term Lease"
       }
      }
     },
     "auth_ref": []
    },
    "srt_TitleOfIndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "TitleOfIndividualAxis",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title and Position [Axis]"
       }
      }
     },
     "auth_ref": [
      "r809",
      "r884"
     ]
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "presentation": [
      "http://tomz.com/role/ContractsAndAgreementsDetailsNarrative",
      "http://tomz.com/role/SubsequentEventsDetailsNarrative"
     ],
     "auth_ref": []
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "TradingSymbol",
     "presentation": [
      "http://tomz.com/role/Cover"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "tomz_TwoCustomersMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "TwoCustomersMember",
     "presentation": [
      "http://tomz.com/role/CustomerConcentrationDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Two Customers"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_TwoVendorsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "TwoVendorsMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Two Vendors"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_USDeferredTaxAssetsValuationAllowanceDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "USDeferredTaxAssetsValuationAllowanceDescription",
     "presentation": [
      "http://tomz.com/role/IncomeTaxesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Description of U.S. deferred tax assets valuation allowance"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_UnitedStatesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "UnitedStatesMember",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails4"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "United States [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://tomz.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": [
      "r100",
      "r101",
      "r194",
      "r197",
      "r198",
      "r199",
      "r514",
      "r516",
      "r674"
     ]
    },
    "tomz_VendorDepositsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "VendorDepositsTextBlock",
     "presentation": [
      "http://tomz.com/role/VendorDeposits"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "VENDOR DEPOSITS",
        "label": "[VENDOR DEPOSITS]"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsEightMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsEightMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 2.18"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsElevenMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsElevenMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 6.95"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsIssuedUponPurchaseShareOfCommonStock": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsIssuedUponPurchaseShareOfCommonStock",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Option to purchase of common stock"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails2",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails3",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Warrants"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsOneMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.64"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsSevenMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsSevenMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 1.68"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsTenMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsTenMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 4.00"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsThreeMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.96"
       }
      }
     },
     "auth_ref": []
    },
    "tomz_WarrantsTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://tomz.com/20250930",
     "localname": "WarrantsTwoMember",
     "presentation": [
      "http://tomz.com/role/ShareholdersEquityDetails3"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "$ 0.80"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Diluted Weighted Average Common Shares Outstanding",
        "verboseLabel": "Diluted",
        "terseLabel": "Diluted Weighted Average Shares",
        "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": [
      "r177",
      "r184"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesIssuedBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesIssuedBasic",
     "presentation": [
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails1",
      "http://tomz.com/role/SummaryOfSignificantAccountingPoliciesDetails2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Basic",
        "label": "[Weighted Average Number of Shares Issued, Basic]",
        "terseLabel": "Basic weighted-average shares",
        "documentation": "This element represents the weighted average total number of shares issued throughout the period including the first (beginning balance outstanding) and last (ending balance outstanding) day of the period before considering any reductions (for instance, shares held in treasury) to arrive at the weighted average number of shares outstanding. Weighted average relates to the portion of time within a reporting period that common shares have been issued and outstanding to the total time in that period. Such concept is used in determining the weighted average number of shares outstanding for purposes of calculating earnings per share (basic)."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r16"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://tomz.com/role/CondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Basic Weighted Average Common Shares Outstanding",
        "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": [
      "r175",
      "r184"
     ]
    },
    "us-gaap_WorkersCompensationDiscountPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WorkersCompensationDiscountPercent",
     "presentation": [
      "http://tomz.com/role/LeasesDetailsNarrative"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Discount Rate",
        "documentation": "Percent discount applied to worker's compensation reserve liability to reduce the reserve to present value."
       }
      }
     },
     "auth_ref": [
      "r96"
     ]
    }
   }
  }
 },
 "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": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r2": {
   "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"
  },
  "r3": {
   "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"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r5": {
   "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"
  },
  "r6": {
   "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"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r8": {
   "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"
  },
  "r9": {
   "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"
  },
  "r10": {
   "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"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r12": {
   "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"
  },
  "r13": {
   "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"
  },
  "r14": {
   "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"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-13"
  },
  "r17": {
   "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"
  },
  "r18": {
   "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"
  },
  "r19": {
   "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"
  },
  "r20": {
   "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"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "20",
   "Section": "25",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481284/470-20-25-22"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "470",
   "SubTopic": "50",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481244/470-50-50-1"
  },
  "r23": {
   "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"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "710",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482943/710-10-55-7"
  },
  "r25": {
   "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"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "40",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-4"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "40",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5"
  },
  "r28": {
   "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"
  },
  "r29": {
   "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"
  },
  "r30": {
   "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"
  },
  "r31": {
   "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"
  },
  "r32": {
   "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"
  },
  "r33": {
   "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"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r47": {
   "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"
  },
  "r48": {
   "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"
  },
  "r49": {
   "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"
  },
  "r50": {
   "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"
  },
  "r51": {
   "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"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r55": {
   "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"
  },
  "r56": {
   "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"
  },
  "r57": {
   "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"
  },
  "r58": {
   "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"
  },
  "r59": {
   "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"
  },
  "r60": {
   "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"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/360/tableOfContent"
  },
  "r62": {
   "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"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481284/470-20-25-10"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r67": {
   "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"
  },
  "r68": {
   "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"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-3"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r77": {
   "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"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "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"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/840/tableOfContent"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481440/840-10-50-2"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "Subparagraph": "(Note 3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481418/840-10-55-40"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481501/840-20-50-1"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481501/840-20-50-2"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481192/840-30-45-2"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "840",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481161/840-30-50-1"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r97": {
   "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"
  },
  "r98": {
   "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"
  },
  "r99": {
   "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"
  },
  "r100": {
   "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"
  },
  "r101": {
   "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"
  },
  "r102": {
   "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"
  },
  "r103": {
   "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"
  },
  "r104": {
   "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"
  },
  "r105": {
   "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"
  },
  "r106": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r107": {
   "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"
  },
  "r108": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r109": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r110": {
   "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"
  },
  "r111": {
   "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"
  },
  "r112": {
   "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"
  },
  "r113": {
   "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"
  },
  "r114": {
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "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"
  },
  "r117": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r118": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r119": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r120": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r121": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r122": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r123": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r124": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r125": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r126": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r127": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r128": {
   "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"
  },
  "r129": {
   "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"
  },
  "r130": {
   "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"
  },
  "r131": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r132": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r133": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r134": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r135": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r136": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r137": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r138": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r139": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SAB Topic 6.B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-5"
  },
  "r140": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r141": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "35",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-35"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r143": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r144": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "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"
  },
  "r145": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-2"
  },
  "r146": {
   "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"
  },
  "r147": {
   "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"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r150": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r151": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r153": {
   "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"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r158": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "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"
  },
  "r164": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r165": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r166": {
   "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"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "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"
  },
  "r171": {
   "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"
  },
  "r172": {
   "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"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-11"
  },
  "r177": {
   "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"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-6A"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "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"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-2A"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-6"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r201": {
   "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"
  },
  "r202": {
   "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"
  },
  "r203": {
   "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"
  },
  "r204": {
   "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"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "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"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "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"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-24"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "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"
  },
  "r231": {
   "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"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "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"
  },
  "r236": {
   "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"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "36",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-36"
  },
  "r238": {
   "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"
  },
  "r239": {
   "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"
  },
  "r240": {
   "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"
  },
  "r241": {
   "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"
  },
  "r242": {
   "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"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r246": {
   "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"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1"
  },
  "r248": {
   "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"
  },
  "r249": {
   "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"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r253": {
   "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"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r256": {
   "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"
  },
  "r257": {
   "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"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r260": {
   "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"
  },
  "r261": {
   "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"
  },
  "r262": {
   "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"
  },
  "r263": {
   "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"
  },
  "r264": {
   "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"
  },
  "r265": {
   "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"
  },
  "r266": {
   "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"
  },
  "r267": {
   "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"
  },
  "r268": {
   "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"
  },
  "r269": {
   "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"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "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"
  },
  "r273": {
   "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"
  },
  "r274": {
   "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"
  },
  "r275": {
   "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"
  },
  "r276": {
   "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"
  },
  "r277": {
   "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"
  },
  "r278": {
   "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"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r280": {
   "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"
  },
  "r281": {
   "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"
  },
  "r282": {
   "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"
  },
  "r283": {
   "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"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "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"
  },
  "r288": {
   "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"
  },
  "r289": {
   "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"
  },
  "r290": {
   "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"
  },
  "r291": {
   "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"
  },
  "r292": {
   "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"
  },
  "r293": {
   "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"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "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"
  },
  "r310": {
   "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"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "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"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-6"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-1"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-2"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-3"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-2"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-3"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3A",
   "Subparagraph": "(24)(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r357": {
   "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"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r360": {
   "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"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r369": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "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"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "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"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-2"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-3"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-4"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479953/718-10-S50-5"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r409": {
   "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"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "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"
  },
  "r417": {
   "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"
  },
  "r418": {
   "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"
  },
  "r419": {
   "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"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "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"
  },
  "r428": {
   "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"
  },
  "r429": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "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"
  },
  "r433": {
   "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"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r441": {
   "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"
  },
  "r442": {
   "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"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19"
  },
  "r444": {
   "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"
  },
  "r445": {
   "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"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r448": {
   "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"
  },
  "r449": {
   "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"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4F"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8A"
  },
  "r455": {
   "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"
  },
  "r456": {
   "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"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "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"
  },
  "r460": {
   "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"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6"
  },
  "r466": {
   "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"
  },
  "r467": {
   "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"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r470": {
   "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"
  },
  "r471": {
   "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"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r479": {
   "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"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-32"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482804/825-20-50-1"
  },
  "r483": {
   "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"
  },
  "r484": {
   "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"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483013/835-20-50-1"
  },
  "r491": {
   "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"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479359/835-30-S45-1"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "11",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479341/842-30-25-11"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479773/842-30-50-5"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r507": {
   "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"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 1.B.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480148/855-10-S99-1"
  },
  "r509": {
   "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"
  },
  "r510": {
   "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"
  },
  "r511": {
   "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"
  },
  "r512": {
   "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"
  },
  "r513": {
   "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"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478671/942-235-S50-1"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r516": {
   "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"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479255/942-310-S50-4"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.H.2.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478116/942-310-S99-2"
  },
  "r519": {
   "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"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477617/942-740-50-1"
  },
  "r521": {
   "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)(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r522": {
   "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"
  },
  "r523": {
   "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"
  },
  "r524": {
   "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"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "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"
  },
  "r528": {
   "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"
  },
  "r529": {
   "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"
  },
  "r530": {
   "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"
  },
  "r531": {
   "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"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r533": {
   "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"
  },
  "r534": {
   "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"
  },
  "r535": {
   "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"
  },
  "r536": {
   "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(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r537": {
   "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"
  },
  "r538": {
   "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"
  },
  "r539": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "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"
  },
  "r542": {
   "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"
  },
  "r543": {
   "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"
  },
  "r544": {
   "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"
  },
  "r545": {
   "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"
  },
  "r546": {
   "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"
  },
  "r547": {
   "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"
  },
  "r548": {
   "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"
  },
  "r549": {
   "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"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478822/944-740-50-1"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "805",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478072/944-805-50-1"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "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"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-3"
  },
  "r569": {
   "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"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-6"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "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"
  },
  "r579": {
   "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"
  },
  "r580": {
   "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"
  },
  "r581": {
   "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"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r584": {
   "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"
  },
  "r585": {
   "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"
  },
  "r586": {
   "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"
  },
  "r587": {
   "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"
  },
  "r588": {
   "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"
  },
  "r589": {
   "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"
  },
  "r590": {
   "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"
  },
  "r591": {
   "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"
  },
  "r592": {
   "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"
  },
  "r593": {
   "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"
  },
  "r594": {
   "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"
  },
  "r595": {
   "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"
  },
  "r596": {
   "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"
  },
  "r597": {
   "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"
  },
  "r598": {
   "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"
  },
  "r599": {
   "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"
  },
  "r600": {
   "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"
  },
  "r601": {
   "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"
  },
  "r602": {
   "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"
  },
  "r603": {
   "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"
  },
  "r604": {
   "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"
  },
  "r605": {
   "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"
  },
  "r606": {
   "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"
  },
  "r607": {
   "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"
  },
  "r608": {
   "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"
  },
  "r609": {
   "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"
  },
  "r610": {
   "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"
  },
  "r611": {
   "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"
  },
  "r612": {
   "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"
  },
  "r613": {
   "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)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r614": {
   "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)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r615": {
   "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"
  },
  "r616": {
   "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"
  },
  "r617": {
   "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"
  },
  "r618": {
   "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"
  },
  "r619": {
   "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"
  },
  "r620": {
   "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"
  },
  "r621": {
   "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"
  },
  "r622": {
   "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"
  },
  "r623": {
   "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"
  },
  "r624": {
   "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"
  },
  "r625": {
   "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"
  },
  "r626": {
   "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"
  },
  "r627": {
   "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"
  },
  "r628": {
   "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"
  },
  "r629": {
   "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"
  },
  "r630": {
   "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"
  },
  "r631": {
   "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"
  },
  "r632": {
   "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"
  },
  "r633": {
   "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"
  },
  "r634": {
   "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"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r637": {
   "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 B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r638": {
   "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 B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r639": {
   "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 B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r640": {
   "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 E)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r641": {
   "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 E)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r642": {
   "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 E)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r643": {
   "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 E)(Footnote 6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r644": {
   "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"
  },
  "r645": {
   "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"
  },
  "r646": {
   "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"
  },
  "r647": {
   "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"
  },
  "r648": {
   "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"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6"
  },
  "r650": {
   "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"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1"
  },
  "r652": {
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-10"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "SubTopic": "30",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r657": {
   "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"
  },
  "r658": {
   "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"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-12"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-11"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-12"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-14"
  },
  "r664": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-18"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-19"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-21"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-24"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-25"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-4"
  },
  "r670": {
   "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"
  },
  "r671": {
   "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"
  },
  "r672": {
   "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"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-3A"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-6"
  },
  "r675": {
   "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"
  },
  "r676": {
   "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"
  },
  "r677": {
   "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"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r679": {
   "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"
  },
  "r680": {
   "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"
  },
  "r681": {
   "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"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "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"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r686": {
   "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"
  },
  "r687": {
   "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"
  },
  "r688": {
   "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"
  },
  "r689": {
   "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"
  },
  "r690": {
   "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"
  },
  "r691": {
   "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"
  },
  "r692": {
   "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"
  },
  "r693": {
   "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"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "64",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481620/480-10-55-64"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r696": {
   "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"
  },
  "r697": {
   "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"
  },
  "r698": {
   "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"
  },
  "r699": {
   "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"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-8"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-41"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4J"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4K",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481175/810-10-55-4K"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-182"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "184",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-184"
  },
  "r734": {
   "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"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-12"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r737": {
   "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"
  },
  "r738": {
   "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"
  },
  "r739": {
   "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"
  },
  "r740": {
   "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"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-11"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-14"
  },
  "r743": {
   "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"
  },
  "r744": {
   "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"
  },
  "r745": {
   "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"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "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"
  },
  "r749": {
   "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"
  },
  "r750": {
   "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"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "39",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477346/946-830-45-39"
  },
  "r752": {
   "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"
  },
  "r753": {
   "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"
  },
  "r754": {
   "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"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r759": {
   "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"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r763": {
   "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"
  },
  "r764": {
   "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"
  },
  "r765": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(6))",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r766": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "205",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/205/tableOfContent"
  },
  "r767": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "205",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483504/205-10-50-1"
  },
  "r768": {
   "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(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r769": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r770": {
   "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"
  },
  "r771": {
   "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"
  },
  "r772": {
   "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)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r773": {
   "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)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r774": {
   "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"
  },
  "r775": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r776": {
   "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"
  },
  "r777": {
   "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(1)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r778": {
   "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"
  },
  "r779": {
   "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"
  },
  "r780": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17"
  },
  "r781": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r782": {
   "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"
  },
  "r783": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r784": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1"
  },
  "r785": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r786": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r787": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r788": {
   "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"
  },
  "r789": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r790": {
   "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"
  },
  "r791": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r792": {
   "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"
  },
  "r793": {
   "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"
  },
  "r794": {
   "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"
  },
  "r795": {
   "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"
  },
  "r796": {
   "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"
  },
  "r797": {
   "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"
  },
  "r798": {
   "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"
  },
  "r799": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/275/tableOfContent"
  },
  "r800": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r801": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r802": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r803": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r804": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r805": {
   "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"
  },
  "r806": {
   "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"
  },
  "r807": {
   "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"
  },
  "r808": {
   "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"
  },
  "r809": {
   "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"
  },
  "r810": {
   "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"
  },
  "r811": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "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"
  },
  "r815": {
   "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"
  },
  "r816": {
   "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"
  },
  "r817": {
   "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"
  },
  "r818": {
   "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"
  },
  "r819": {
   "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"
  },
  "r820": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r821": {
   "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"
  },
  "r822": {
   "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"
  },
  "r823": {
   "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"
  },
  "r824": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r825": {
   "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"
  },
  "r826": {
   "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"
  },
  "r827": {
   "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"
  },
  "r828": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r829": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r830": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r831": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r832": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r833": {
   "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"
  },
  "r834": {
   "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"
  },
  "r835": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r836": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r837": {
   "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"
  },
  "r838": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3"
  },
  "r839": {
   "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"
  },
  "r840": {
   "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"
  },
  "r841": {
   "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"
  },
  "r842": {
   "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"
  },
  "r843": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r844": {
   "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"
  },
  "r845": {
   "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"
  },
  "r846": {
   "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"
  },
  "r847": {
   "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"
  },
  "r848": {
   "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"
  },
  "r849": {
   "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"
  },
  "r850": {
   "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"
  },
  "r851": {
   "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"
  },
  "r852": {
   "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"
  },
  "r853": {
   "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"
  },
  "r854": {
   "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"
  },
  "r855": {
   "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"
  },
  "r856": {
   "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"
  },
  "r857": {
   "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"
  },
  "r858": {
   "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"
  },
  "r859": {
   "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"
  },
  "r860": {
   "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"
  },
  "r861": {
   "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"
  },
  "r862": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r863": {
   "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"
  },
  "r864": {
   "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"
  },
  "r865": {
   "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"
  },
  "r866": {
   "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"
  },
  "r867": {
   "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"
  },
  "r868": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r869": {
   "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"
  },
  "r870": {
   "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"
  },
  "r871": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r872": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r873": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D"
  },
  "r874": {
   "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"
  },
  "r875": {
   "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"
  },
  "r876": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-1A"
  },
  "r877": {
   "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"
  },
  "r878": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-3"
  },
  "r879": {
   "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"
  },
  "r880": {
   "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"
  },
  "r881": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r882": {
   "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"
  },
  "r883": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r884": {
   "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"
  },
  "r885": {
   "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"
  },
  "r886": {
   "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"
  },
  "r887": {
   "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"
  },
  "r888": {
   "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"
  },
  "r889": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r890": {
   "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)(15)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r891": {
   "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"
  },
  "r892": {
   "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)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r893": {
   "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"
  },
  "r894": {
   "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"
  },
  "r895": {
   "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"
  },
  "r896": {
   "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"
  },
  "r897": {
   "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"
  },
  "r898": {
   "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"
  },
  "r899": {
   "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"
  },
  "r900": {
   "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"
  },
  "r901": {
   "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"
  },
  "r902": {
   "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"
  },
  "r903": {
   "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"
  },
  "r904": {
   "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"
  },
  "r905": {
   "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"
  },
  "r906": {
   "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"
  },
  "r907": {
   "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"
  },
  "r908": {
   "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"
  },
  "r909": {
   "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"
  },
  "r910": {
   "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"
  },
  "r911": {
   "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"
  },
  "r912": {
   "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"
  },
  "r913": {
   "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"
  },
  "r914": {
   "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"
  },
  "r915": {
   "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"
  },
  "r916": {
   "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"
  },
  "r917": {
   "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"
  },
  "r918": {
   "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"
  },
  "r919": {
   "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"
  },
  "r920": {
   "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"
  },
  "r921": {
   "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"
  },
  "r922": {
   "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"
  },
  "r923": {
   "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"
  },
  "r924": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r925": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r926": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r927": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r928": {
   "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(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r929": {
   "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"
  },
  "r930": {
   "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"
  },
  "r931": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "230",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477867/946-230-45-1"
  },
  "r932": {
   "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 E)(Footnote 6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r933": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>91
<FILENAME>0001654954-25-013088-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001654954-25-013088-xbrl.zip
M4$L#!!0    ( -*#;EO@F3&@L1,  %W8   1    =&]M>BTR,#(U,#DS,"YX
M<V3M7?]SH[B2__VJ[G_@\LOMJSK'<9*9G4S-["MBDXQ?.;;/=F9F[Y=7!&1;
MM1B\$B3Q_O77$E\,2"!P\@ZJCOUA-J9;4G=_4*N[)>#+WU]WCO:,",6>^_5L
M<'YQIB'7\FSL;KZ>!;1G4@OC,XWZIFN;CN>BKV<'1,_^_MN__]N7_^CU?MXN
M)MK(LX(=<GUM2)#I(UM[P?Y68Z0'D_J(]'H1]_=PG,_:Y?G5^<6GY/JM2:&5
MY_(V0!PDE!'TIWEKS6(]\Z:#07]PW;^\N/R0,"V]M?]B$J29Q-IB'UE^0$Q'
MLQ'%&U<#P;50H<^:_I^6-MJ:9&?N"=J9+E-*TY_]\Z2OH;<_$+S9^MHOUM\T
M-HPV[DV-E78;4.PB2K6EYP1,%/I?VMBUSC7=<;0%:T&U!:*(/",[ZHY:6QA$
M PN[]/.K\_5LZ_O[S_W^R\O+^>L3<<X]L@%-+J[Z/R?8_>,LXB1H7<CZL0_4
MF-$*" &P#@DWYZ3(.M]XS_V8RFT5-P%$-Z:Y[YF^G[1:F_2)]Q\1^T D^"GP
M >>H&7:?$?7EXX0T&&5PU;L8]*X&<2,7;=C=4*C+39]X#NI';"D)_<,>4:EX
MG))6*-/YRU7<]:#_\V&RY.8_2^P/)I:Q#VYN;OJ<&K,*G%FP&/D)[MBD9Z#B
M$G[LLMEC9?CMG#$CY@_]D)AAQ5+6CR$K3FX&+W!]4G0OA,3LK>"3$FB &C-2
MXA=!DI R/=L^R37(] _D/B.S-I>]BZO4+6,C+%< ")DAW&"GZ!PX$,%6TL!S
M*[3QW%ZN'6@H55LVJXIG5)H96;9<1R!D&*U# 2,0>N:Z1X.G#/]Z7< /A RC
M[^W^2CC9CW/+VW&.BYLK6 "2^7_GD=T(K<W  2,$[I^!Z> U9G,5.8AY_ Q#
MBNR;9(/\J;E#=&]:J&0P\).:]L5T7<_G#I[_9E?V>^RNO>@G7&"S[C-S&"M
M2F-_/"[&8L?<I0P]6-'.- SV"/],NHD[LM$:NY@/>,'^&VB]XS+6TWBK+_T\
M:[Z7 ):MF?L;_QL6% J-N1+,FT>M(Y:REI;I6(%S0L.C9,7MHJNQX4ZUIVLC
M%SJ&/ZCG8)LY[%O385YMN47(I[&QE7QE2 P&%^![P/Q+,".*H9A-1\9T:8S8
M7\O99#S25_#C5I_HTZ&A+;\9QFK9054=JCE$2JZ_13X&;:KBEFVD!'%P"HC:
M+YE1_M:!6@IJ8E\Z6\_VB' %Z*-K!C;F\50ALJJ6I?!>7@^JSM'E"O[W8$P!
MVMF=-IL;"WTU!@;ME\>I_C@: T\'<G60EY"XH*WGV)!%&7\&V#_4!;NLAU+0
MKS]]/ WTY3=]87R;34;&8JD9__TX7OW>H7\2^D.3;N\<[Z7V#)<T+,7Z5Q8/
MG8+U4%]^T^XFLQ_=!)="/'8IAIFW(B8K1NB$F)L0HQ#(8K(2+AZ]8FHY'@T(
M@A]17UK4F9;JK<,CQF.$J$7PGHTT6\?EG1 +.:D,A\N+:-ID<!@9R^%B/&>K
M'ILAMX_+\=18=N%J@L$RV.U,<H"E"6]<2!XMT_5UBY<KX+Z=@S^S,(I J<A;
MBM*-#*7EX\.#OOB=KU?C^^GX;CS4IRM-'PYGC]/5>'JOS<'E#<=&!]S1F4V_
M@]^?+< HD?M*72B#X.I:!D&J=6?CV,;?D6M[9(3V'L7Q*I&[5F;I7W_])+$T
MV'DT6X!GFL^6XRYS/EI[3CS(A?R#[MHL-MZSU3*TN92BM+RP*,\7+ 6" %B?
MCG@L/&>A4P? ,3[R37>#GQRD4XJ.85'NJM+PEZ)S6>G3^_'MQ-#TY;(K%Z5L
M/C'T9>S!H[_+[/OI^E+B4L*&G5&37,[Q DC'=ON !29+1)ZQA2 ]\XEI12ZE
MG$4)@>!;AI/9(TO.'N://&!9&HOOXZ'!TK750A]V7B:=:#^#,V<.982>_"2)
MSEQ4 B#X&##T=W#NW,F,C-O.X,<07R@Z1>&\>%UI]BLA=!?K2YWEC[?Z;H=]
MGO5#Z,*\"_@:Y!XSJC(&)1;7XA1X>!BOPG(0"W&8[P%?9$R[S"GG@+B79R;7
M-P2E:T %-"46'R3NB/O]$ G]?F&$=;H.AA@&W;)(@&SC=<^JI\S@,W^+R)"?
MFO$GV'S"#L@13Y7J[$JP/N;!TH?#Q:,!.<'/.2NRAIC-5M^,A39\7"P -VTR
MUF_'D_&JFTDBA#],0DPW7E;R%Y5P_%H$QP]]L="GW8*2SM#@3[0R7U&2G!TO
ME!GZYN:#M.@#2X:AK?2?W5V=6A\""A? M7BNA=ARP,:,E@<I26EX,5MX7*[
M\@NV3 P-ME*P"G4'01*RH@U;>!=H[Q$6$D4!:_ZJTO!"EK T[MDRK"V,^6S!
M@J/.YK'-C=W>\0X(+9 /*L)X0X+LI.Q92%5B(*0,QL-\,OO=, "$%6#!MF:&
M"V/4U4(SVS)/%/T9@'K&\S$Z%:XJC2_D",O'VR6D:6P.&-^[@+3^5M@I6V*5
MML8X7D(>47UK3/LE'J;;\J^)Z<I\<NHA&K50XBFD&G7P# ?IT$R%O\SM>20'
MF7A9B8N0<Z3V/SO#5]J:2R-00E="\:G:-EV'BG*_+CLGI#0E&C?*O;L."'$3
M#YDTZY(R5U1&'Q1LZ'665FT>I4TN)REM+^;FN8VD#H4*.TJ9"*J(JL1"3-=E
MIY<[.$ZMI*=1JMM("9Z0Y]>KJG>XJLKK$O1R)"5&0CD@7VKO4#@QA1PAW\1.
MK1PR;J)$[4U%@6B4#M#3 !V<@.A #>F;Z@+1,-J@ _4T4"]/ /52#:I05#@%
MU,L.U-- O3H!U"LUJ$)YXA10KSI03P/U^@10K]6@"E6.4T"][D ]#=0IBUI]
M_(Q. /?85@7RY1L>,SJ"G(S7@2TKPV?"7LEU)4CBDY/I0GP7O)8_DB2?4 H>
M)29"&2;WR%(W.^KNE62F21F#$ANARE*T6])-G1K Y"90)4XE5$*Q10%5-YLJ
M[''E%APY40F-4%&1[')U$Z@B%H-2,-3%D$NA&%*,1E?S4.-Q68J'NHYQ*3D<
M48A'5ZY0XI%;7)1<2GR$DD0)/MV:4K1=GUE)LI>4" CU@WC#OELT2HT]D%A;
MO4!<%9Z/Z%8%A<$O)097KP!70E:>-WCG]@L,?B4QN+K*?"6DW'F#=Q7D H-?
M2PRNK@!?"7ETWN!==;? X+EPIH"F!$#(CO, =)%+S1=;R/&IUT0)F_B@L^+%
M%QV@-<XS9F+2 IH2(B&=%D\T=F%J-2#R<TG!I(1&R*P+H>EF2Z5SI]EC5X5D
M)3#B+K_LY&DW;2HC,E! 4B'K$S?I2S#I4L JJ%PJ4%&GAM?BKGH9*EV>6 &5
M*P4JZOSQ6DC82U'IDLD*J.1/J:CYE"A5>[ZABP#JOKNI,%JKPJM$32@5%+W;
MJ8/N79Y2R<1TM5LIX2Q\!J+J<RI=%*AX4$4&8)ZFA$DH-(B/JG1 E+P?JFCS
ML9A!"8EDG_[X_JC.^=5^IU3!LE6)50F66&J0OG.J@^V4=R+)D:O,K01/*$<4
MOS.I [#.>Y2*3J KN)2 21XHR+UGZ?\I3NP?]JW6!5IK_!NOGWU@^GI&,4P6
M]D56?FW+/[G+H.O%'Z;\)ZA[_KIS8A;6?\DW7CG:>0M% \==F,02>A&^00N=
M\,.?$%+V8^'/M/Z[J>683W75@B;(::L^<&_5U2=W.[91*[CQZVJ5G2OOK]27
M?OJ3K/ K^\G6+Z"31WS-%;[Y6O9!Y/ +V1//XAV5-&&_>G&['KO4&USVK@;G
MK]2.9:PCPE&_>B+$[6J+(/_*<\7!XP9LU \UQI-__EDV*"UK$O_@]^<IPV>_
M1%YM_'2;Y->I$AP_'UUI\)B=_5%CR H?E:X">+KE-&S(@+]AM]O@XYM$.4V,
M]Y"!?U0\<D/]M6GY/?2Z=TS7]#URN./?Q:@BE$-(IA?CV,D[R,>[3;Y'7U6>
M=*OW$Z*&0>(6M0<O_(Y[Z2P1/H/>1XY/CWV\><:DOPM?)(FJ)?]-:YHAH"=8
M(?V-]] 2<3<U#"'YM/RI&)PP:/8S]6]0FUTYU4<CRZ[CHV-V]H<X9/1]>IY>
ML=#JG_'#H8>H='O&Q3D^-)JZCAV'O80&&I* 16DP*O[\%'X-^^N9C9ZP'U^%
M< E[]HI'=6%T J0PR L9=A[,2Y,<QC[:,390#I(]'_L!4^V>>,$^9L7 4BS_
M,-CQF/49C? SMI%KSQ&Q$+B^#8IU4?!(]2K1 /P^([,JT)O%G_%O:5+C%?K#
MD,#Q[2P:"UY(58IL!_'[T=-6I[S]NPNM[U@<5"1T0BV_?RQ>E*FNR[O=0;KC
M>"],AIF[-!U$%\@/B)M@4$P^<3[\B]69>B[[LG%THC!Y3A+DMAR34KS&R+XC
MWBZ9X"OO#K\"3/RIEQ"L1/GWZJRET&>?R%ZA5__6\:P_8NV+R;7G'X2LS&WX
M<1]O]WNEYT>3DI>@TPGM6J"L=,M8U$W)UKPJA<7H8LCJ-6E>Q>@E(71N'I@D
M_$TA!T$K)5?SBDP\=^- U!"YL[%K.0'_!KD%CA PR#\R6*#IV[MIWA3W'@C,
MM[Z(6Z!F.4OS*BPA>K8#!\W6R9)^YY%P+DT\&K\76-#KA'9M4I:?RQB[:X_L
M^) +Y+"$?.6EWH5<HG/=YBU0/=COPVNFPX*7.P"MMOYOZZ,%1D@ C$YXT%G@
MLRR&.Q[7CJ)S)N7M84X@!EB #T*JN^%MG35OEGC1 :'OL M3&12 6!;A9R98
M9EKGUZEJ34X-=/^U23*L, @2/W_FYAZ5F*)4PE_*T](('H1CEM=]G^"GP.=W
MG,<^W^FYZ9.A23Y3F;V=R9T.\9^-G8#5,HQ7%D>$^5<8T/.19VO#)"[<I'2.
M"%<JFYZ_K8MF"P\+ME7O(CL2#Z9F6-E!]@BML843):LPMG.J@FOQ-B[^"Z)]
M2*D#=-1(N-[2*9FNDB01TR@@[*6!7(ID6:G V%(=DWK'=],)HI" 0BZ-SO+E
M4PE#.V^\S+FV!:9_A#52WTS544M9FBRC"I*-W0KBYYCJAR?OJ,'<X\F]Z3B'
M4>2=E\B"R1!^:C?40,54%X)W=<['ZB T.L9/XN56[B/ "@<ASU_1^K="$.GY
MX]V>>,^<,?%/R3):G;^=H<0=.Q6#)JPND2M I()"%5,KH9S!4":K;O+L[ ?"
MFRTL_#K$M##/8<'906@04U>([(X;%[7;G1@.Q5??K"H3@\L3ZY"^T+1P#^8K
MW@6[L0M+&DN3%T 5O;*2JUFW3#P+(9NR"#E7+)^MCVG@T4-7YV^G6] AXS:=
MN7G@+ILG@UQZXW7/:I7'+$+%=FJFX+/X[ST"@CB'G<*B&5>9,RN3@J>=85KZ
M!DLI )=WF%((.+DJ8TJ#]&I5NU4[;\X1HA;!^W#-S<$7JZK@:?:VS$8-23UI
MZ%&?ZK;-CZE2>8A1S-Q.K'C=X!8\.M]M1"[E@^FL?K@)-^9N#T>>R)/H+R:Q
MDP,$X$K"E<@-\\'<DAR?,. 5QR2I_#\?]M3UB4OQ9C/'%5DV=Y']N/?<>4"L
M+2C'^V=3@%>W_%0]MV:;9FL^]TS4.Q,3EDF#;'%)*MEV*J8WB\SQU%'&XZ(U
M(K!V<.,N?5:2XH*+9Y4JMFKG,B4>N0)D,EH4'\Z2<#8: [)]=H)8([#,K><&
MB8>64AJ5-5X73&>!V)IE^9$1^31)Q6]JOF:G_0C"2,OWR!U"-#J"J+OVU'.M
M[#G%"GSMG"&\^KDR7Z.H,U,4S5QNJ?C(]\-KR:[@8>B8>)=,CE*.=L8LC\M1
MY'@ @? P1E*_/5:HCP%FK.H)[9J-0Z--A HUWTJ<S;J\:(/VF%U74*MNHT8U
M3(5C8\C04MY"2FFV"OQJ(4K';DHRT?HJID:M';Y%:()=%@AS[QJ5J,)-4/W9
MQ$ZT]<^<M33"?F,?[?2.Z:56MORV5_!T2> [Q#O\" </>\PX[GET\?'8<YT&
MS3KRL4LA9B8K8O*S.(0EJ#S+U:$[PA\?BS<DU8PY5<R(TGP)CQU#R2M43&Z=
M&I)#R1)MRKG:I531D>2\6A7X6J%8%+'ZB)@/F/KSA6<'EO^ =D^(G*6"W@*&
MDT^VV1[;5'JCU.$V ]PX,+GY#I4H=R%+HY+/";<BB!4)& 6;@OPJQD:UX ?G
M7#/,I@71I=1&Y;U'WH:8^RVV%F@#[021BQ@:E7KFHO!Q'"K(*Y(:E73UXA5)
M*I(:E32[A,+U #( 0>A2KD;EC^O8@LAY0K/^F46+T>:"9$41B0W[Y*B2H7/1
M)*Y82F]4YC#;&O/\'3^C.:0;X!,$T<O9&M6 )1,LKX#L0KQ'9,1F[?V*+'[X
M[!BI_L#^UG PI>8_EEM39OSJ;1KVB;L=]GV$AEL3$QB42E;(,J9&I?]'X")8
M9%9;+Z F1'LO0#K<@=4%%92<S:[VEN^!%":KY#]S@0195UNXC\18H&;#IB.%
M^*V2TEA!(#8J[8-YB Q8?%>5\#0[JR-+3B!WH[*UH8BA4:GY4U3_@X@W][#K
M+UG.(Y.]G*UM&DCO&P5?BW0PV%D0]DNA@\#7JKGK!40Y=U,\;;-_A7M(X&O6
M_N2[Z8*'$4,)@=*\K<%Y<!/.>(0@M[.<ISVR3S$()HT0RMF:UX#-.RX;^Z/8
MT12R-:\!=]]<-B;7$K_*-2AD:T5-0;;02FC-5Q8*BR!2:BML*_,J$EH[9)4Z
M$2FU%?+R654H;X;:"GGY.ETH;X;:"GE7)=9=M<VV3NG-D"4W*O'4<^.MPOA$
M@2!V"4\+JH_Q">JDO%50?BSD:WH/$2.J9\_=2I:44K9VU*T+1&^!S%_ZX0L\
M?_M?4$L#!!0    ( -*#;EM!;:ZJ;1(  &C9   5    =&]M>BTR,#(U,#DS
M,%]C86PN>&ULU5WK;^,V$O]^P/T/NMR':X'+PW:VNUET6RBVLBO L7V2DVX_
M%8I,)\+)DDM)>?2O/U*V'$M\RA)-78%N7C/T;QZ<&9(CZN=?7U>A\0Q@$L31
MEY/>V<6) 2(_7@31XY>3+#GU$C\(3HPD]:*%%\81^'+R!I*37W_Y^]]^_L?I
MZ?=K9VR,8C];@2@UAA!X*5@8+T'Z9. _W7I)"N#IZ9;Z?O,YGXW^V>#LXM/N
M]]=>@KCB*.=!?^SM_C)"XQGQTO#QR#EKKW?>NSSO7_0_[(C<>)F^>! 8'O2?
M@A3X:0:]T%B )'B,# 3<V CTV3#_Y1NC)P^NO#4$*R_"0AGF<WJV&VL8K]]@
M\/B4&C_X/QKX8PS[=&+-C>LL"2*0)(8;AQF&DOS;L"/_S###T' P1V(X( 'P
M&2RVPX5!]-_/^)\'))^!%!TEGU^3X,O)4YJN/Y^?O[R\G+T,SF+XB.2YZ)U_
MOQV[_A/"=1I$6.$^."FX\"@TOM[5U=5Y_M>"E*!\?8!A\1F#\P(.(D^"STG^
M<>/8SY4KP68P*?!/IP79*?[5::]_.NB=O2:+$Z0-P]CH \8A<,#2P%_O''OW
MF6F\^NO,CU?G^ _GPQCY),*8LSQ!L/QR@@E.L4$NK@87>-1_EHC2MS7RS218
MK4,DW/D!GQ@M0(3\$'V3Q&&PP)Y\[878#.X3 &DBAB,[@GJL,S0=HO0)I('O
MA<V!4X=3(H6;HG]Q,$FFR^D:P-PQD[O(RQ9H9B\.$D5R3.7RN"CR@*<X7* P
M:/V9!>E;>W))C*U<OJ&7/-V$\4N+YF(/V50:.TH"I*PY]'!J,"'T'C<?*L(L
M9&R*; 02'P9K[*3399%V1*BX3$T1N=EJY<$WY&4HH09+% 2BU/3].(M2I((9
M,IP? "'$>J,TMN_DWIK,IXYMN4*+DJ1-/_T>1(L8CL Z3@*Q2]&IFV*8P1@%
MN_3-C!8X(JRQDXJ0\'B:SSA4TSP&#R$PDT0BG[+HF^(86Z8K=HHR5>/8&<89
M"G*K=89]W4558N #%/12Z/E"HT@QMQ#=43658G6/P(,8$YV\<:0ATI@PJC Y
MFFMDM0K2/+2CZ8#UC;2/%D<2H4Z"M05[Y?;''V ^0B"7O/A<33&A: XSL+!>
MUSBIX\^8HJ(1#C.(R\=QX#T$89!*Z*_V0"TA_\U#Z3P2.QV#O'F$1-^"N?<J
MUA"%M+%'90GZ!=)RC.I^[":XF! Z%(^I<30 C]@_'908(9Y!PEC H&^*PT*,
M\1M E"D:'@DXA& AD==%?,WKLH<$_)FAL:UGF=G/HC].?=ANG=AVO2CWJ7,/
M);R6)"B/U3QV8)/&4!HDDT%%W2D'2<S9=@TJJRH>5^-Z%'B)K-%HM"U7?G)
MN$SM5X&2\T[ =[3Z1@[N@<.U7.O4PDIG.D[L'8'4"\*6@F]EL*-*T&M5A)X6
M&?JMRM#7(L.@51D&6F2X;%6&2RTR3'!028-GT*HLQ*@M5EB2H8C-T>[^8ET]
MRG&KJ ,E%2?!JA"=M![KC-%VY2KM@EPV1:B$&4[$IPB7,&N)^!3ADO8X6?YV
MUB22/D8E;A6!T)_HU*UB$/H.G;I5#,**A4[=*@9AQ4&G;A6#]'SA<RD]U:D+
M]:#!6E[[2TYX/I<:3/)ZE&-O?X]"=GTJ8E2&3+SN%'(JPR9>3PHYE6$3KQ.%
MG,JPR:^=I$=0<S)YP#2N,<K1=O8D)_FAX[6\MU</+8.KQ5/-^N6ND%7)J6=M
M9ZTSB*K3R+J@ZX[3]FEE_=T?.7XV3M\+_2S,C3-&/Y?HP2O2PN*]OQ!#EFE.
M3H,4$UYL_NL9I^_M\'O?XB9T"RDY?3/L:!G#U?:<7 DZZ3;D#?1>[Z)_<8'0
M[AHOT??#Z61D35QKA+]SIV-[9,[1#]?FV)P,+</]9EES=]/77> /8[^$.<1M
MY7&EBQM#3A#FO'E\Z24/>0=YEIP^>MXZ;^L_!V&:%+_)/2"W_O87?VS6O=M
M6HP=>@\@S#_QCRU=A>Q< U+<NXK_Q]GVV0NQRSH@26'@(X/@/Z"L4/[%'B5;
MLH;#EC6QYW,F](T8HO+@R\FNI/*@7_(TLNU_2W&>X*U9/,QI@'RHX%_">,4S
MR]8(<9L"[AL6H3LQ7@!^.@/YN1XWV&Y0(QE\@%"B9<D$I&+_Y7+)&'&@U8@R
M4K=F(S)7X-_\46R_O[&UC>E(,AGU7NI1+QUPUWR^.%J0#-8,<ADS?-#JY5PY
MNV..&01K+RA6(T)S,,AES/&35G-PY>R..?*E8+FGG31"B4@'RNI1 XK?UJL?
M9OBIEZ]QO'@)PI -7XY;QJ4^*G,IBATJ#E5'!QWRK\TS;M%COON=/YLZ7=XE
M&QDX'L=GD['5)XVVDI*Z0T9Z%T@8D&FT,N:XTFD.IGS=L8$H!M/#+UW7O0O%
MJ8]5:'=;Q46+Q"S$O3I[?1(37BCB<TF9HZ?''#+RREB'(97JE;EX,G?/Q?9V
MTX61E$:K<U-@YKWAM;'T=D"57LIIU.T$L%7/V Z@R]L=7]J>A.S)51S=4!XZ
MHYI)AEW*:NHV&.I835X;W3'B""P!$FOA@&<09>+)Q:*7,I.Z#0AI,_'E[8Y=
MRA5Z(1YG=XY:V9-\4G92MS,A;2<Y^;MCKSW!)G'DU\BM^^0=\C09*218I?Q-
MW;8%URQR+D?AZXS7[?5OC>/H<0[@:A*GH"@=. =C(D8INZG;PJAC-TDE=,=J
M4N51_2)(W0X&K8*)9>/ZP0NXOKI=@EH"=3D N&GL_Y=ZHP?I431:/4%KM8JC
M',V]%V;<*%6EE/(;==L9;'43,8DN8W<\QUPL BRP%\Z\8&%'0V\=I![GE(+)
M(&43=9LQTC812-P=TSBX62L""\N#$2I'$K2TS%98IV"!EB^!'W!*,AE>*8.I
MVPB1-IB\'KICNQG<+C!EXAN56,HZZC8\I*W#D;0[YBAOQ]3)EF).*4,=9<N#
M*QJ[L.F>N23N J-7"4PF*2,=9;^CCI&D[T0[J*X^RG*[CK@<0HZ4/Y]7A1RC
MGW4T"=.O_-WK&.X=TC%L_% :]\?C=4#+7@*\E;!_V9/MB7;GZ,NM-4'236^,
MZ<QRS+F-"(P?[B;FW<A&-#_JZ)3^"N,DF<%XR:NM2D1Z"L-\TYH3"]\I]/8N
M4_1)%'=E6;J4A))TNMSBXZ6=$IG>-F.QOJE2491^JOO HW@.3&+;^9U44[O&
M$B1)OJ*\ 3S )*7>KFFFKLD&#:J$W9FK(["&P \VJHL6Y@I?9OE7Z6)-:@LU
MFTEO([6L923D[HZ17!"&[R)Q-B@K='J;J&5-09>N.]K'+UK!+WM!;C)"T3^,
M\Q8KH3$$;)J[D25M(R5[=TPU!H^B5+)'HKG)6-($A$S=4?=7$"$90AP_%ZL@
M"I)T\W"L<&X(&34W'$N:1E+^[AAL)]CF6?=QG,A4B?O$FKN3.0)4;4,IZ ]O
MA55W(B8O$=LK.[0(P?UZDSB*RU() X*(3YLL&QP"X 61YJYJ.>73NJW+4G8G
M7ME1"B!(Q,460:BY5_D@4S"D[=#T+A!NI-D%)+%=" ;-7<F-[,.0ODO3ID@E
M-TCPS>E'AI"^;T5?@V4,P=Z--]8KJEV0WH/(@V\V4EW>M8.O18KSU5DA.\_4
M"C]4<W?T$13*2O:4LN#P,D;=8E^#AN2F<&<FY02D,E5WA4QS^R\5-!$6U9N^
M,U;<";'ULVNT!.2>>3$9-#<(RUN6*2RW,-%ZN%SW9:7;<]C+3S\==@[K?C,=
MZ]MT/+(<U[#^<V?/?R\=R&HY>.:\SG0K[T=\B]@A\@Y-]YMQ,Y[^IOW<&5_T
M@^1$"_WG .GM^NT.:<2.=NG3]-/@6= I7F<,7>=D0<I/&_LT>D^NZUN$<FA6
M%K<[X5_/<9FZ=6IC8_U?G:-Q;^W8AR[>KZH]DMX#Z\9V/E1UW3'^/LCI\@:5
MGI&/Y,%M';R'K+E<>L^Z&QM51B7=,6!>R%U[><6SPDXF"+LL>KVGXHV-QE=#
M=\QE)TF&.SQ1!8Z[4U%RV%[YG-S$</O&@60*AZ$7K#@3L.8P>H_5&QOW(*5U
MQ^:YX+C=":$=Q=E#NLS"XC8.;NW*X=)[2M]&-2M427<,N+OM<VS?3''S!WP&
MUG()_'0:;78#N%<I2;+K/=UO/DGK*$GUO;-FB);X><B(7"\$B0/2#$:TV8;)
MF=2:S_4/MPE7JNY-+Q_B^GD$-E_MB+RZF+N5*,&MN9^AA=DEKZ-.'8U68>^]
MD+&.34MLFCL*%!B3HI5.6[%\S6\=0U8Y-;<D*+ E73>=-N?V$FVI6Y'EN#5W
M,B@P*UM'G3;M_DN/ZIN6QJVYZT"!:=DZZK1I*S<Z'E(BU;N8J</[/]+:Z7C9
M6[GLL:9-"6[]C1(*S,K049<M6[D?LEYVK;#J;Y%H/[52M=-E@S)N]:N56UE#
M:+Z6346"Y6NK.X9FR(Z79TG#Q@GJ&%JVH[VWO!=F'IO^GUF 6]#*K]C@[$F+
M635?P5??@-6=:5GM=*@T)# SK\"O85K.&)JORVO?QD)]=<C8#.EWY]0-0A1U
M#$TG9CX BZ)U=O]EXMP#,S:3YML$ZQN-/# 3::0[670?;'YB.UWG'<_6*X!^
MD+RW7/*-R&#5?,]@JZ;D:J<[!FWT/M 9@$&\J!:%NY=XH6^>4((%CI=NSPO9
MWG%L')HO3=2C]HJ['K <./P..77;AEW6):]R.5R7ZG;KNJQ+7ASNP*U_=I0@
MM' ./2RL":'WN'DR80=R[RF$_%7F0>*'<9)!@'[8<AM;=J/$K^!IBA%(?!BL
M-YV0UUD21""I(NU?;)^7*"$=6>[0L6?X%C[\:,3UG6M/+-=5@M+%7@O?IDLW
M>(R"9>#C(GZS^XN4-(O#H'3#Y1;V%0VV>W=[:SJ_YT^OV%\G]HT]-"=SPQP.
MIW>3N3WY:LRF8WMH6VHDL2?WUF0^=?+Q2W 'ES2X)7H%>.X180R+5^Q6('W\
M^(D""0$:31UD_]G4M>=J8!7+->I*;0\<,7]F#KX;<OZ[84Y&^1-),_SPCAI3
MLK8-]O#U27O.S<E7^WIL&:;K6HK4-[9,EW"P3Y=]BC4+4A5/:H5QEC?K9GB6
M;KLX\7.2T/.KULS!$=8<CJ=W^(&LV]E=/C5=R[FWAQ9^1&ONF$,U=F4MOO:
M$F9%@.Z1V^5V'5G7:H"13_31L V(B$<^I*=(;^*[A_=P7I(ZO+VUYYMG[?#L
MQ49&1K<FRH)QX8L8K_D( 35/YV _4 R>>^ &JOG5L39/"2K!N3T1*^Z_*=X/
MMSW/IAV4[4'_J0H=I3KGSD+1\?L,/_"XD6 Z_V8YQO#.<9 4QM@VK^VQ/5>E
M^*U VQYOJAM_9,'^S70<E+'5^/#>L]H54%=7'ZCI&7FM9<S-[ZI<-$O0+Y"M
MX\@'40K+#SWL02-CYYT[1]@<[*I#"WLK+M74!";PB&>.@ZH(6+H99 \?$3)=
MZRN>,8:#Z@@'3W0ET*S5.HS? '  8L&##2%8D)5.#I&(G-;M;#S]W;(0QCF"
MBBO=H6.-5!4];O:0@#\S?-'@,R40Y1B)J.G>7;LHJ&--6O?*(I!< <XHQ'/@
M1 25+\2-'XJ!U3Q1+B?<'/>84$4C(FP=T3;#JA%LK^>4C9X(M'M+#K7P:$4^
M&^<GN5)?M4;+-3\;[I6P\E>+-#^'9^/K,18":D%52FLV.C*;50ILM3C)2IL-
ME4QLM$LQ5**5+@_90A"IKUZ1>!3YBFJ1+061'*LUHV*OD<HC(_QRJI"*OU&.
MW([; =%Z--D:)<GMP$:O ]+U:=(12?00Z?H=D&Y DXY(O8=(-^B =)<TZ8A,
M?8ATEQV0;H(#)+Z'F2)EO\%&^+N4NT]07J^RHV2?/#/9+UB5AL'R;KF,VHGJ
MH+)[?C3=THIMCI*)@H!5;2O5-P<T5^M$(2! K]ZQR\L&CN*)&H"R;E"J<P96
M6E+O$TF=#595[F; I67I/F6IRX2K*!DSX'*]F4B_'-B*'7FSJN2X+Y%,BV6E
M4I\MP:)YZH"YW%7LGB5D-*<<$.FLBDR1)Y:0T<J^ 9&[JL@4E70E9+22;4!D
MIRHR1>58"1EOS@Z(#%1%J'BB<L]>900@3[P$9[''$ZV\B<0.1@,B/9&[2$K#
M$ATI5^U$BF)"5JUF<@^,HVERA4C;!%.[1<'"2\T'Y**/ UC9O@,+,BU17)(K
M.!YD59L)+,BT#'))Y#8N9%4[!"S(O(EX*;>M>[R01VE4D!&#R)2LQH6CR2*]
M6\T.-Y?,C5[9[6JED:BR7\V1@TBRY(:UXK7>KMU!QIDHR[WW]H?C309:2X0,
M?#*W4ELDCB8(JS=!1A8BX;)[%8Y7,53Z%V3DH&R^5OH9V/"W'=WXGP=4E__R
M/U!+ P04    " #2@VY;?\7QH? H   !EP( %0   '1O;7HM,C R-3 Y,S!?
M9&5F+GAM;.T]:7/C-I;?MVK_ [?WPR95ZW;[Z"LUF2E:HCN:LB4-1;N3_9*B
M2=CFA"(='C[RZQ?@(5ZX*)("86NJIM-MXX'OP@/P+OSM'\]K5WD$0>CXWL_O
MCMY_>*< S_)MQ[O[^5T<'IBAY3COE# R/=MT?0_\_.X%A._^\??__(^__=?!
MP:]G^H4R]:UX#;Q(F03 C("M/#G1O8)^=6F&$0@.#K+1U^EW?E*.WY^\__!E
M\_,S,X10OI? P%\>;7XSA?,I_JUBH9D3T*.CPZ/3P^,/QQ\W@U;^;?1D!D Q
M ^O>B8 5Q8'I*C8(G3M/@8@K*4$_*>K_6,KTW@S6YD, UJ:'B%+4Q^C]9JZ)
M__ 2.'?WD?*#]:."/J/,#N::H9S%H>.!,%16OALC5,+_56:>]5Y175?1$42H
MZ" $P2.PL^E<Q_OC)_3'#:1/@8SVPI^>0^?G=_=1]/#3X>'3T]/[IY/W?G '
MZ?EP=/CKY<7*NH=X'3@>8K@%WN50:!8<W-'7KU\/D]_F0QLCGV\"-__&R6&.
MSF9F^%L[V@"4!W\\3'\)AX;.3V&"V85O)7+@^()"'('^=9 /.T _.C@Z/C@Y
M>O\<VN\@XQ0E95W@NT 'MPKZ[Y4^VWPS\M=_O;?\]2'ZQ>'$A^H+<4Q [@-P
M^_,[-.  R>[#UY,/:-;_K@R*7AZ@&H?.^L&%?#C<XHN>#3RHLO OH>\Z-E+Z
M,]-%$EO= Q"%;'1X9Q@>UR5<.5YT#R+',MWNB&.G&X2*503_1'8G7-PN'D"0
M*&9XY9FQ#8V O14IG',.3L\*&BEP[[LVM)C:G[$3O?1'%\?<@],W,</[<]=_
MZE%<Y"F[4C/S0@<RRPA,M(NH06#>I1]EX<P$[(K9%(16X#P@)5W<YCL4"RLJ
M4%>,5O%Z;08O4,O@WNO<0B/@1:IE^;$7018LH> L!S!1;#=+9_G.K[6YL=!G
MVHHIT>;0KE^_!I[M!U/PX(<.6Z7PH[OBL Q\:.RB%]6SD45X0$K*PH0&TWW%
MP>//G7/C C4,.?93TOBN>%QHZHJM%-51G6VGZ\?0R*T?8J3K*WB@="P C5X4
MF!93*%S /5AW>)J*$+NGX(:-$WYX9TO3V,:85H4(T9TCZ[43):8=+@?$;\A]
M>(_B,'4<H#W(*Y$_^H!Z%P"^S8L.U14G:,V#&-C:\P/:U-$W%O#0&$SB !T?
M+QSSQG&=B(-_K2?J"?/O)MS./;;2$89WMY#PK\ PG]D<P@SMK%%Q"'\ N>S#
M<S]2$W288"H4#:BS-0!W2#]UN#$&: 4Q;0%A?%<\- CHOP X,H+30P(G ; Y
M]G467/=SV4T(_HSAW-HCS^HGC=_-^;#?<V+?YT6^KQHFW/!ZHJ Z5W?;@43J
M!]Q($@&&.'?RH<2&[/L,RLLJ&E3G\R@P0UZAX<;V?/+C0X0*U/\ID'/=,>!V
M=K[A0W?+Z7H^Z[3"%0^T&]L[!9'IN#T9W]ID.Z7@J%<2CH30<-PK#<=":#CI
ME883(32<]DK#J1 :YLBH1,XCZ)66QJP]GK X31$9HE__8EL^\D$/<0[D9!P'
MZ(#8<?.QS1Q]GURY59 *-A!6S!V.!3<07LQ=BP4W$%[<&L<+W\^=A%/'L(-[
MQ8"I3_C1O>+ U!W\Z%YQ8)Y8\*-[Q8%YXL"/[A4'[O5"AQHTJM,6U:TFZ_GN
MS[G@Z5##X,3/1S[P_GT4O/=3%N!@F+'OG4S(P7!CWR>9D(/AQKXG,B$'PXW_
M[L0]PS"1R2V6<8M9=N;9XUSDV\[7LV^O';8$J!ZCFNV/NTS00:*>K96US21#
M12/;(MUVGKZCE>V]/WSP9#S-P,I1Q0TM?YZ0YYRG3Z,$YX\)5O=PBL"*;\"!
M[4 3%2;A[^Q#95YL9G&\Z! ./<S&'&(G&!KKS:<.;']M.BU1;D(/CF_RG8,U
M6-^@E.]6R%9!A\;4=-UV^"4 0V/E^9':%K$<9H>Z"&[-V(VV5L8<O(PQ_*'C
M.<B\7<!_5K &S]#PV45*,9J.IQXA<B(T\$/ZOR/EH"B6.5"2D<K2O /*S+OU
M@W6:$9-@E./D^E8%$1<58/A!DW]A3G@(K/=W_N.A#9RD3 ;]);&.*0>!\WOR
M7?4FK"0%NN8-<)/Y?X=C,B(R[AQBV#, W[AK(E*F'AU]@(H!^;C) D<\7<RG
MVGRE3='?5HN+V50UX#_.U MU/M&4U2^:9JRZLOC6#&\2!8O#@SO3?$CY#-PH
MS']2,#S[P>\;)"&/P S^-<1P/AN,&WLH$N<DALN!;S:NBFNA'FI0Q1JNRWS2
M;(ERVL 4YC;PUTR^9=_SJ0C[ ;SK_/P.JM,'")$8G9\L>*N ZJNYR4!HN-*,
ML>+WK@^5%9X^X'E8L'@FKAFBPH[(M_Y0GQT>S6J"#"DT[,&%)<2*TI$$V*0C
MDR4R#F+$4D9IFAUZ2/+ C1U2$,WC&$L*)-VJ"01'R$82)U)*XO>C!MJ#"2,_
MC@PFC828C4!..<R<$(L&4 #\; EG T& ZKL@ 9?9<9QHTVA @\JO>ET@R(ZL
MA'6;1J.CL&I'(D6C;B,: I!THB'048CF6(QHTO@NY4"?#:R/$R\ [@-;'?6<
MYR(9GGEH>?G>&"X=^QL4Y,=F0;N[&=ZC_Z,0Q:/I(C^?#B!JC@4OCN@7JF=7
M?U :23D(=)M6(JEVI#23_HF@-9@F\T&,+0!Q@E>%.8@R#:4L12J41+*C$Y*)
MYG0KT33=Z>@GO^<9BB]D)J-QS6$R<!6/><;&CV(T/$^ZK!A?LFH3ALO ?3H%
MF10^B9$"//,]F$X>GF5*@3!<(BD0*,BD\'D$)R[.DY947,?K_!=1.I\F*R]=
ME#5?REB&>PQ-]6E0$LF"3D@FFJ]B1)/DAO!>^+"#)1($%O_-=5N, .IIU5 G
MM&?+C5&'GV^^;S\Y18"B*1$^:(E$Q$=0+C-!]_6LDY=WE^3X)LWZ%K=788HR
M9?G0P222$H.27#R"+O*E9<[<X7%C91($!OV<^X(NTB64N-@N*[\+1F]W+>[I
M#,LZO$K%WCIG!=V42TFR\+B6..<KZ<OLDQ+_#!))AY^H7'Z"[M@E1+F=ZC08
M.65$<J\?B;IS9R[&I?F"_(O<OM7Z>(FD02(AEX2@^WB6=%]=S\G6ANEOAA4,
M#[A<<N*A*!>;H+OZ-(L6Z^ 1>#%[ 9'&2R08$@F;!+LQ7 !S':%$,K#WIB:<
M1))AD9)+2- 5O;D/MMGZI9($#OV<^X)NX"64YKYG;7$&PX')*1,<);EX1%W1
M\6NWP+2U!2N#2B0F#FIR40FZY)=*RB]\[\X P7KN1R _45+23EB $HF)24LN
M)/'^ IXU1!@ND4 (%.1B$'_MYV*^K"PO&"WH)L_18QQGD"A $@F"2D<N&$$7
M^VU<E:_$.<GACCP6=&^OIGE?FVY,V;>Q@R62 Q;_/+535-T.7+*^Q\/]YDB)
M6-]$/N>[J+QVVTYX9;I+T[%GWL1\<"*3DLY !)!("D0:<F$(NI/KJ&>%!VS-
M##RX8X6J9<7KV$55T5/(3\NA[!$\L!*)B(><7%J"KNC-[:S-#BZ5-'#HY]P7
M=.MF13JW#_Q*)1DV,;F<-A?OL?1VP#\;66KT<+1-HP?EA\J\/^X;/^P;/^P;
M/[SVQ@^B4H/WC1_JC1_D;,'QBAL_G.P;/XRUNP"K\8.HY/E]XP=FXP=1B?.H
M:?7,"^%!!*W<*\]<H\<,_X*W8B=,$MEHN49,4/%B:I%VQ*1&;,>(DJL/WD@6
M04*9G7C]EB!(&BYS.3G)P!))BXL>P;TE"A03?$(UCN[] *D4EYR:0'+*ITF'
MV*X/#=1F81BWDDD.(+,\<AHZM7GH7Q:+. HCT[-+S^ER"*0");-4*H2(;1U1
M/:^TWW%XX242%R])PKM-E+#DWWI8<-(*BK@!"4JEP6''VH-H,)(+IK83">M7
MT<2,:S-B DHN'MR6M%U2#:$IU"2-PSJ/8.H\.C;P;&A)+>"9T1UN>T$P=! 9
M&,ZFHM&C0F"8;4-/N+C-\J?A;^$=.;:=J)@VC[4=GQ[Q-E5?&? _E]K<6"F+
M<V6QU'35F,$!R@]7<_5J.H-C?ARFPSZ#S.8#1D1R3[]\VH[<U2^JKOVRN)AJ
M^DK1_G4U,WZKT+V/-.XCC:\HTI@N(_3FH.\EJ;1\T48\F)P11SPMPF-=-;18
MX2["\''%'FG:5A,/@1[AO>?[$,L8 Y%=1;.31O2$TRHVFA,28UD(A@XB_K1*
M5;/R@95.B/#V\B5O&BNVB!DJB1S(!(CO(8_/@F;)@@$FEUP8Q!0R$A3\J*=!
MLX1#&B^75$A4%.(0%/_@<_Y)Z^[#.OA$Y:#LL^NWCH43SD*+A\0/I#W#VY(#
M;YFIN FG(-)@&?A*P[]3,)N3L>J:D(F#0RP?+"MC<_S%1J:3-91:KFD<P$UC
M"0^_OEVV:.=^ $_$CXY%*X%N.X\,4MN2-+'Q; *V2>BVNSQ)T\@O3A)E8H/<
MJOWO.$PK\@V?<.A.%/'&3)S\:_0201*VT '<$4,G ADI*94ZL/R[5#2,<N'A
MORR1S@S/#+&A^CF(9I[EK\&%'U*,0FV81 *L85Z/P8\DYHC>C3IW_2=RR/$S
M>AM[FQC<1%W]HIQ?++X/'G*<>:$#N6L$)HJEJT%@WJ7TX6A)GOEV0A2]B0,
M_Y%!*QFX4H'O']DI"*W 24YFB]NS.(1J%-81/?Z0,;V"Z%1;3?39$D5Q$7_/
MKE:SN;9:#8'D*EZOS>!E<;MRH-&X=2STUD;:?A5M7U"3RNUI<JR_XK!>75U>
MJOIO251V]FT^.Y]-U+FAJ)/)XFINS.;?E"54H,E,&X20V?P:ZN-"3Z:O8'MR
MBL.V,KY_=*[A0#_(GU*J8?3Y\Q<,1A"?Z4*'PE\N5C-C$*SR)U7*KZG@<&LL
MG:6.\@J,WQ1U/DW"[$NT^H=9XM67+'#H'3>%::CS;[.S"TU15RMM&.9=:.JJ
MH5Q?3H\QHLR'#I!TX?IQ<@B(T?K,-G[43:G<K:B,6T.4DXO%%3+GE\NK9%&N
M-/UZ-M&0@3=T=3*(4$N=Z%"-" [/ADPA/M=0Y1*A3K6S0?!J9JC@4#MI6+IF
MTLDP7&/V"RNC>=KDX.7ES$BW:;1ND82AQ+7Y4#8XUT.$KGH7 .S>G.#Z$2/M
M1/M23-5ONI:>+X9 ,VM;G3VMMNE9G76!Q;3#*V/^J8XYW-_T*W@FTGY=HI-2
M2L#"^$73E<F5KD,BE(N9>C:[F!D#L3VCY[L)SS,>7H4_D[#^KNHZW*4'T=_T
M5&R8SPU.?OWZ$;LE0XW5%$/]=2#UA/<LB%  U=0"2%.C4E9*&;.FS;Q:&1 U
M':GI1$.:BLYF@UBD--RNPX-#$)629LOH-4SE2ON&%HNBPZ.#CI;X$)AIZP?7
M?P% !Q $338)@-T\VR08-BRF=KF\6/RF:1!% V**#K8379L.=,Q9Q3<AO!NC
M-(E'C 5*4&Q8R]75V0K:<L1'[7HHT\-WW"8<NQ.\&Y:3_]BM_)!//,CEC(^V
M),<+2UG#LK:A+)UVH$MG^B M%?F&@2W=+P;%#G>D)Z/YA>]@/S _JR=\,K9?
MF>?\01%-NEN3T3LB'/L'Q:EVDB8CU]S#:N?I0=%L'JS)F#:W,UQ.]X#(<I\'
MR30T-KQVI\)=D)<?#\E$-+;$^B%Q6)7AVCZF* W%Q:+?:6?,YA5/V1&.M$Y;
M8S:Q<B2>N&,<<8VM<QOBCO>E'OM2CU=5ZK%O*K=O*C=48<>^J=R8:CG&W52.
M5')<N8C R>'>3:_AH$*(C_>SFY$QB>C:)(Y4+X-0RE+\Z%4RF(&R,!:'>]?.
M;C1^9M<A#H;61TK%T3KR!4M[S;9M4\LUVB(N/K:R2K=$O6O^1O.L!)5"? ?.
MW7T$;!7N!N8=F,>(QJSE09:X>V:&CD46!/\,$LF(GRBQC04)>$X=-X[RN@2N
MUC6M)Y)?F&3:Q#8E3!0K+T_+.XDM __<#]8F68(,,(GDQ:!$;#%(IC7MY<,$
ME$A"3%K$UG>H7N38"$7G$:R %0=)U$-[MMS8!O8Y)#O-/#/3G-8Z&<02JSS3
MO9_I)9)W3Q37ZT1VDU+>RK-_@O/L-Z+-VWCV3_:>_;UG_S5X]K/K978C7P0Z
M.EW1/?L4$*D\^Q0ZQN)/KN+&Z5C& XW"U\_4-AX1C::-4]]"&E$8H$=![:2I
MTS["N;T=Y(EP"EYB^PAG90'))XD1F;:^(YP?QVK1[OT@,D"P3E(RX8<8U@P_
M7"Y+AJ>A(JI1B(*U@(@ X[!G-,UBB:1AT#Y)+I0QF;;N@JG:ML^[;<'YYE,*
M/O::HL&533#:1 +:M:K,4&(RP4=A[X-5JB'8+4NQP\7+@6$@&XU+L604TN@U
MM:/LP^X>"D!3=IIQ!,+B:LG6B<AZ;L,('?ZG.(=_HV!K&X?_Z=[AOW?XOP:'
M_X:*O/E/5MS-^VH#'DRN:R*=%N'._PP=YGVD.FP<5T,>[6J\HURA0[C/<1OV
MC^D2V%4$<CCL-WT\LO?_HI>YN6;XN&@P4EDP&B'"/<5XY%C+B0XU"N/&5CDN
M,34,G2BW9/^"&I$9[%5859/X:<=>,1"8ETX8+77?CBVR/R'U+N$'C^""BMM5
MJXXQ/.J%/>NW?BGM4J=ZMA% C.!=DO76#V&X#*PE(E\PM]=BIF60B!!^,/NT
M#AZ!%P-&"0X=2 )&LT@HV-VK-VP&C5#@F6F/9BJ/L2/%,Y9G)RKS&4M&P=SM
MLLD)S/T&_+O ?+AW+!W<P0]2^4L:+!^+29047-XN'YS Y2O/R7M#T^,5N('R
M<1='1<%90;WW5Z8+0N3H3WI,9::+<@'&#Q<O#'Z/'IX""1S=<Q3T0EY\C,/[
MN$,3[,+AO?G"WO&]=WR/UO$=!E%)-/!?A5C@/WZ_-/_M!WF'59*'&P[$C9/#
M(41 ?A@?-H/;:,M;W%;0(3H3X'C*<+'N'@)/&XRG$#",$WM'_!^#%Z>S#.3P
M8FO/:'./G? >X;"X1:D3=!\V&4(.@\4D0[C_&H<:3WX@"VX4/FR6PG&("9O%
M*<J'/8RPQF !AQ#83OS8/<4EBN,I^@CB.T=LCP DE6FD4B(\;9J '5_4B @V
M"MO(H7=\HFI8Q\^O2%@CLHT]"ZQJ';^,U#KN*Q6IE8JBEMJ^4K%N]+Y(*8D1
MF;>^*Q6_CM2B[7M04'M0"%Y'^QX4/#THOKX2(8W(_ W5@^*()VPA0I9+U_38
M2:S545)9NRKJ%7F(Y#=KN=3'C<*,X92%P.ZZL3H2]5[!=@P?D4EJS?2JX3G>
M-\,?23/\HP_[9OA]5JX??>@U?_1M5ZX??>@U.W3A@?3A=SH[F\,$,I0>76^R
MLHE\P4Q!O86SW*UP:;Z@(Q&K#0!AN'BEYHNPU7O,XJDIA-)K\JCQY/-H>'.8
M1!K>1+Y@IJ!\T8D?0GU(DBC932X:0\5K-E=TI-'FHD%((8?/@[Q>HB8;+]_K
M)=6QXEG<\O62*OH%8[_TR=CTZ==9\MRZ\PC0@1UN'U3^TD'$LQE_L2JSF$Y!
MP>FO(W@G1GTT'1=M&X8_\==KWTNT(GNXE_& 2>N)Q MON[=F>&@3^QH-1'=B
MAO?+P']T;&"?O5R%P)YY\'X&#Q0Q/%,L'D"06%SZRT#\D\@E2WZZQ#Y+@_!4
M/1O]!UF11[CWH6X"$/\@>(&87ILNK4R$$UPBV7%2U.GA&<+>I:/J#&_S6 <\
M9L?KV(5XVU/(,<LA=;?B@)-! )RD='I4ALAYR[_SG+\H=5$I=O5A\O"UCGFG
M=U](GC)T<H8BC ,O5%W7?S+AD60:!ZC$"02.;Q/XR@$G"Z,Y2*F_K=)/D3 4
M*QS\@LQ3LK/H( 3!(TF3*>-EX32%A(S#V]W8NK\[E=UW4,%H&((HA'_)?Z8]
M/P /52,FF(9PHX$F+HA--\S\A2_YK\A[;E_SRR#HGDG.%&.[&V=WIZ&=Q"Y"
M: LRI"D>0\Q8B02&0S]COJ!+Z"*Z!P'2!$@Q.N!-X4;H^@^(&*8P>& E$@X/
M.9O<%U%YL/"^F[[>6=X\TQ<@Y^ I^14U*98/7B*I\9*T<?>(D=PY@)\WW2EX
M\$,GFGEA'* CT,0/'OSTSKL,P-J)U\Q5UWXFB:39GKA<KKW&8B=^XC1,OZ@[
MX1]0J= /S#O2R9$*(8, F$3DC.[U;M_XXLQKS^HJC+3,KI*1L[O7"_W2CY O
MW'3=EVGC-4Q2G(4.(PN[&63D[!;TX&O)G=WBS6LZE R2X2(DEXVPD&\-N:S?
MT5\ Y[@A450&DEDR93IRP6P\"KOI&I2[.(K60!OD2QV!CNH=@6;S:VUN+/1R
MRY\?-YCWB%^:LY"=8;BZ%QW7<8683A>Z,M66B]7,P+<H&@#S9> _P OJ"[S]
M("]_<O>AL/BDCO927RPUW?A-4>=31?O7U6QY"5D^++<I.%-Y?MH2^8%9/X/[
MOG>',CA35PZ%[1^;FFVH\V^SLPM-45<KS2CK][Z1U;Z1U4@;6;6Y/B.V@@NX
M^.SZ0CE[2;/)4-8-O8JDU212%9FTHDSX6P\4; M<>6HF6D\TBBJ6+7297]QX
MNH6_+R%*Y".JH]FYV.7H!H;:&KLNL*+8=/.C'"NSE@8C_FZUI:XWNG:0:2PL
MN"AO-IG$;X$?;K<'9Y#B!<COK682(S8;D8)?*85(7?M!Y/R5^"&W$AQQKM<A
M2B)Y8E,4*1C/ 2XGCDUI O<ZA):04L]&W)5["GN3/\)=Y3_Q7^65HUWZ'8YQ
MV'YN@>WQ+K&E.GJ^M,!Z6!]/TG*=YMEI/-MYH:FKH=V5%:QP6GK2:*Y>0VL@
MU:P@AE/(DX:/MX[8,%I80>P$AUC#H5M'[&1XQ' /PYXT7+9UQ$Z'1XRV6D\:
M;MDZ@L,NT8GKQW;Z-+#CW64OVJ *A<"T>-S*)PWG[.1B<355)HO+Y57R[,!*
MTZ]G$PW^9&[HZF1G#N;:8]5D*W32V)0@JM>:;B06<ZJ=#>S0QR-*97IC8R)B
MO'_C8>\:?UVN<?7)#.PII(3N_*X-D\J]7<-=N -[@P_+6]D8. H'-%9C2"P?
MC0MY6Z:/R 6\!>-WXL0E9(O],_: \>0;]WX<FIYM/,'Y7\[AUDFM&V="B7<P
M$%2IG"[&I**K#Y;4N,:*?#@__.3<?TP^U<#"@!/01=!V$BDDTI:H0D""''1E
M9^'B]MSQ3,^"=PK438.V3U.AQ$N*O]:%2D@GQSCY!58+ #L\ASB7+A'PQVLG
M#/W@9>Y'($0% 2BGG+!VVDXB@T2VH4NL<YM:U9&B'R9Z52*%FLG,4RW",:\,
MTNZ)U"%*^:<@M +G(:I_%^D>83W20620!YN*3K7[/43@'T$8)8W.GCQ@GYDN
ML@!+J#*6\V"ZT([''B6>Q DN@Z3:4=2I54 /Y=0WJ#XJ"F*$:/(X-$1:1T<H
M>F>!; )>>(GDQDM2ITX#O22\(+RR"C:$-#W3I3%8(I%@\1?;AR#= -.-$:YI
MN+!!D/R,<FH@@T@D"PH5G1H $/9ZVOE?M6V'U 0+ 7/"RL#\%N34.P'LZ UN
MI )9#[6T8QXE--2(I:]^477ME\7%5--72=&$\=N^^& ?87E5$9;]ZV/4U\=$
M-</8OSY6#\V(BH?M7Q\CO#YV,M*D^]*S!JQ<>\Q0\<<N=HME,O:%W1*4E9T<
MN,Y,N*FA/".HF>D#GJ@IUUVB'&<OQ9"E^8)^E,1'LG<H2K7Q\Y@AO/X_)5[X
M[2X\_5(O-I^_*T'?DJ<WDCXCCF\S*C4&^=@;TAXL_2..JI2?NM&>X3'2"6D-
M+K:92R;I;T%>IXB)<..@/3\X6??M7&F',P[8C\FD'D/0+S8,U.-N^1V@1Z"
MK3Z"P+P#^1))G(X[.:S0$7A#>L;-$[$Q$2:98:O-=B#]ZQ.)UZ2#??)E!+&A
M+J3FU(A6Q99XO"5M;,F:(4)C/="0'Q^VU+.D)_^NL9!!RX0P9F2!/VP-:*,T
ME1;Y0P6A^]C?/O8G?^PO7=$SN*2>@6WXB4<@7R[IG_1 ("^\5%%!7J*$!Z9H
MB!HO]?=<VTFO##^*4&([56TATC*EPLO =B/2$<4D=R!6D45F.CI4_1\(_*4/
M>;1"[W"Q7B:E@X@_9;93T<I[9%3*!BHYPWR46>3'@'EE,L#7_?7ZXD3UJQJZ
M+:!_M1!" ^;U"*%!6B&$?E^:;'ZUY4IHP+PR(>!70K^/3J*O0JN7?'215.&R
M!8 ?+SWS\605C._UF<K*%^?P=L<N-*:#O!KV-R@K)-#K<Y7)1\_].$B^BO["
MMP<00:27 )&R0@+;A0IH$DCV_.2KZ(LKYYDM 2*(]!(@4E9(0-"[D?L\NK&$
M7*3,H[MA$W33.JJN \3YI+8G;1D7FZX!@O4Q0[=VC8QLVK=K_@C.T^N<792$
MEY '=VC+AOF4;+K5+_6R)P%N"!*3Q,6-P-O4,JXX\N8Z+CB.O-GT2G'DTT8O
M86H<^7@?1]['D5]#'#FK6/J.NL]ZT2+0T3JFAXXI(%)%BRETC*6&M(H;9PDC
M'F@4H6"FMO&(:&SEI;T):43!W1X%M9/*4X+;+,,GI#K*ZH/$G^ X%*OL#ZL3
M(&\EZ=SWTK-E>EXKFB;MQ"G6ZNOBM63X<WXKAHS ==8OC:5:J)TJ6^6[;UO-
M*JR0V_>U+T,;D\IM688VUA+(?1G:B'5P@#(T0;T]]V5HKU\;MRM#D[4^%U/O
M+DPE6V+RMI2R)7/JY;J"(PZXM_A.&X\$4B,.)_N(PS[B\!HB#LFZ1@E>'.^"
M%<.DBBS4<!?NJ-[>_A:4>/;2-;WF\_!];H6TKXTB?H'5W=XV.QKYPNO;Y->A
M$8571.G13@KJ]GV-M]\Y>/H:B[( ^[[&=5M\*J4D1F0'^^YK_'&GT>4$#:X0
M,W:D^ L\NUTQ$?G"&O5:\YM_AE5JC1DGGIU#'I%P\7Y<"?9)K]6_^9=8M8Z8
M<6]/'+A*R)->ZX W7V(60&)'OD&18(LC3WJM"\Z_E12D<0FE,O+M":5"?B&4
M7FN&\V\EQ>%<0JF,?'M"J9!?"*77,N+-JN1<)\9;7B4&;HWT6E.\$;W+;;FJ
M0]^>4*KT%W(166F\KQ>5* @JJ%[T]21E[O. 1Y6@2<X#EC1-<U^BO"]1WI<H
MOT8MDZI$>8X.G)'S6,2)2HE#QZT2AS93[1.(]@E$KR:!: HIX4@@*H9)%0:N
MX2Z\''F##RO:V!@XBJ O5F-(+!]->?&V3!]1?'<+QLOR4.T^1862HB+G@\\C
ML5:]IJC(F2PT(A/6=XK*:)/N0." \&P)9P-! .R$ .8CW#0@\==,_N>X:71T
M;6_?DVC4;41# )).- 0Z!FIZ?VF^&$]P)69_,GNM4\:+YS3A&%D.;U'P'ZBC
M??V+?ARTXG!IO)0<+N'?M5W]L*]OS\%3\BOJP98/7KR@^GEENT22V/#:Q%^O
M?2_!]=IT8XJGJCE2(F$TD>\48F)D0Z12OWKPO64<6/=F"!*I+VY+:#"R)/BF
MD$$"[:F2-(9S;CI!HEPJI')=K80?*FS#\4T9=&0';!#<?06_&20X)[^K=4ZP
M6V^5M*ED4H'VU(GM9S+-[A0$C?WN1/<SSW8>'3LVW4OSV5G'ZUJ.S1%9V/W,
M+I'\^R%XY!U%VIFQ!V!%P+[V73B-ZT0O.F3ESK82_,<E4JB=\*/>*N05Z-L4
MK3'@V0*TK?KIMZYK56YDFB;;LT0X G4G_.,\ &#F10!>B:,=:AK^TV]5T_#<
MR#3MJV1IZ;2EQ#AL#?E-V71K(#9L')5]NEV2YH>;CR]NX94A09#@8B$/ET%(
M= IR_@KR)E8C+*FK4XVC>S]P_J+=:5EP,@B&DY1<0H)RVW'HI=?M=M+)8227
M3$Y&+I5> U23>!V[2=HLO*$^@B!R;EQ0PP(A;Y,\[VB6MI/(()!MZ,HE),B!
MAU.>4N%*N\53 91!8+RTY$+JM0Z[T)3\*@1WO HFS*5#!I2!^[RTY-P7Y/:J
MHK,T@T506L&40QE6N\CP,HBL)4FYY';<:S9WG(:J9ZMW\ :8U./QE(^<U,M'
M)HNYH:L38Z6H\ZFB?M,U[5*;PW_N:TCV-22OLX8D+_FGIVQ71TF5I5U%77@!
M"6_?SU%V?<4I"X'=HRD>V8[A(\J[;LUT@84C81"59 +_5<@#_N-W VV^B]LB
M]DFP.G L8:@<IH>,_S#E"&W9C@+0.G#3=P3NG0?#U[P(U=R2U@B.(-8D8BT6
M601L4;$H&Z;MZ0B%. 8K.)P@=](QM?/^E>"/0A1!]&($IA?"JP[B/O6\1@62
MPX;R4%(1WHB$PSIK,,!&<=;CT#L^436LYJ=7)*PQ6,AA!%:UCI]WVD]:>P96
MC+PLA3\'F7+-=<+0_.?JWF0T16X!+]X/QVZZUX*<PB+VVHT:9;8[403 Y-YT
M FCB0Y_>)Y$&()#EVYSV,&YL"G&% /HMQ NNX?J,&%QOC!*OW5Q&MU(@5J>A
MX*BH6@K3-9/22\_^;MY1"\ :(\4+@-^?V4"^4U$709&1OST B 5F\'+F>S&.
MG6@D;J ,W"3A+K@;(*V.3P=A%#@HP2FMZ4=I4-\"/]RVU)$RGPP2[$ABI\(O
MPJI1;3MAD^G6/IPD46'37A <&TP&>?!1(K8T*LL@//>#2],STPS#<T"+$Y,
M9) (BX9Z,=-N L&J905PL:)D32],]K%%= ^"21P$"3'F#2IV@#M<%LS%A81/
MZR%A=3+1K[2IHOVZU.8K+8T,+XQ?-%V97.FZ-C>4BYEZ-KN8&3.M"!3_N"&]
M?P*S.M07"AD?261\5W5=G9>Z(@Z"Z,R#?P6&^0RXXO"?ZMC.YI/%I:88ZJ\:
M/O8^ ,Z3&!XZUU!=?,\"**,@.:9R8/^YD45PM3(@^CI*)YAH**/ F"WF^QR"
M?0Z!3#D$C'#$I?EO/\C73$B.X^'&R>& )B _3 8!@]O(/[2XK:!#"_-0A@N/
MRI$5I\1X"@'#)!3LB/]C<!=WEH$<C2DK^S@J#CM[.0.>=;\V T9_2C:D' :,
MFQSQ/1(;*.8(,CLF,B%'$4SC54:FZ.K4B7^!=3#1C<%6#BL^.1(0SA'+P06\
MK]@S+S*].U3CHH8A0&]*I=L#:F%(MZFM)I'*O+:B3/ARI6!;X,J3+MEZHE'8
MX2UTF5_<>+J%YZB($OF([/?.Q5ZU[)]VFCQA//F;HSTU6HP;*#8VS[QFE4,"
M./0+^RJH=ERU+#_VHE '%G >T;;!:D],AA ?"> ]W-4?,B"25,BGU^R(7 \N
MG)#]8CIIL'AV;VFIJQ66>.(*QO<:E]31*Z Q:.C)$IZQX _,.U)!. ^@>('P
MQ29Y:!DBE:*YS-K+H>4<LHBD)5GUW(S=Q"NU]8/KOP"@ PB")IL$P';X2E>_
MU(-.VN7R8O&;IBFZ9FCS). TT;7IC%"\.D  ;17?A.#/&)*B/?)6X'YM/.!V
M=;;2_G6%PJK:];[T=A\VDRULUD8\U05CP$\Q'DXB 4CE,"%2(;Q4%(,9ZTY,
M 1F%PX.A8VS1C.8=I3Z%,R+71$\"DN-II21-DFWG:L.DLFXUW,4O&U:/S9#4
M9+.@Q+-YB^B'^=HH+"E6=]LV--V*?.%! _EU:$0&7Y0>"0PV[KM",/!_,PT%
M1-ORG72%Z#70-T(ACL&8[JHKQ$"ANWW;KBW;=HD*HK_9MEVBFC6\];9= S5<
MZ-L-PWQ\%S]\!'$DECN)[GD9N-_"W/?RZ-#4"8 %X:@Q;<KX$;!ZP.MC.>A'
M84+7K@Q;G<TF]PZX/7<\T[,<TUW<WCH6((L10E !I.Z:P2*N:X\'4A^9/V.(
M4OY*YZ9["KUW#!U&_'+BZ!=#)Z%@]G;%TI0>,=GKI[,P)D0<\_8I]8'BV<K9
MP1R#^Q"Y'=JS!<)PYI6^Q\SE8,#(PF(&&4,\>9PN&(35XC9-PL@>9537*(U$
M?30=%\GZW ]6ILOU!'*W*:6152<JQ3Z17$)E[B_-@/_E\/)P&21%IT#PF\+;
MO@&7JM[,"Z,@3@Z12;,'X][TLL=UOZ6/=7MIVY8.\8;>,)!(5W;'E$X/'Q.;
M3*7'_W. [=:5MF@J#Y%!,DVL)7T@./GC&H31IJ<2ZSG#WKXB@YP'(;S3V[ZD
M509"*W"25;VXS3Z8=6<R\_9,5Y"_Q"7(#R^#W%J25'\#EY1SG/T<_8'>JOS[
M_P-02P,$%     @ TH-N6^V #[WM9@  QU<% !4   !T;VUZ+3(P,C4P.3,P
M7VQA8BYX;6SMO>MRY#B2+OA_S?8=L+6S-M5FRJRX7_K,S+%(*52M6:5"(RFK
MID_96AN"!"5.A4@UR5!*_?2+"\G@!0!!1A" :LZ/[E)*[N 'PNEP./SR+__S
M[7D'7E$4^V'PKS\,/P]^ "AP0M</'O_UAWW\"<:.[_\ X@0&+MR% ?K7']Y1
M_,/__+?_\__XE__KTZ?__')W#2Y"9_^,@@2<1P@FR 7?_>0)D#]]A7&"HD^?
M4NI?V'/^#$:?QY\'B_SW7V",N<* \N _#O._7.#Q0.@!AXQ,68?#GX:3GT:#
MT30GN@^]Y#N,$("1\^0GR$GV$=P!%\7^8P P<, F]&>P^F<'7#S!Z!F^1.@9
M!F128/6:?,['.@]?WB/_\2D!/SI_ N0QX.K3S?H!?-G'?H#B&-R'NSV!$I^!
MJ\#Y#%:[';@C'#&X0S&*7I&;#K?S@]__3/YOB^<'\(L.XC^_Q?Z__O"4)"]_
M_NFG[]^_?_X^_AQ&CW@^@^%/__GU^MYYPK@^^0%YX0[Z(>,BH_#XALOE\B?Z
MUXRT1OFVC7;9,\8_97 P>>S_.::/NPX=^G(5V("0@OSK4T;VB?SJTW#T:3S\
M_!:[/^"W 0!['U&X0W?( Q3TGY/W%RQ1L?_\LB.0Z.^>(N3QH>RBZ"?"_U.
M'HF@D<<LR6.&,_*8_SO]]37<HMT/@%!^N[L2SFI9&BME^DD1:KO!;U'DA^XZ
MR)YRHHE6AU4%?]+'WR<P2CJ]\CJ_Y@D\A G<=8)>Y-0,^@9U>]L'/MUO&6M]
MU.TM%SA[ )W4 ;=^M;QWNB._NL8_E0"BMP0%+G(SB&0 B<:EXU/%3D?.QPZ=
MTJ@[HKO#J#[O&(]*1XR1\_DQ?/W)13[=-LD/G\@/=,KX'W\[#[$!L-K&202=
M)!N)3N)??^#\_:<R($*WBC)4> MNF%A*\9,3X@WN)?FT*ZI$+PJ?N0]-YQQR
M_OBWW3;G9R\%/X(+LT04H3C<1PYJM1Y%K*(WE.)YWF$*8D6AX-.W^Q_^C=*
MWS*J_^]??CJ,TOL2KX/$3][OT*-/GAXD-_ 9<>;!)].SX#*(V;KS:"Q8?@FL
MJA0P4G"@!838@"R<8X,=6\E76"6]_;_H73BK&IU.:1" +(M#A<@:>>#C$@A$
M2@PH-<#D6D4B.\$]X!$Y\RG_68\ \"!EZU[\FP7+S8%37>7\B$QHM"[M"C_6
M)8^^W,%'#OC*W_4L+A=4MKJE/UJPO#P\U?7-:0 ATKK Y_LH(N#\V(&[OR(8
MX?,@<9OPS!0AJ2:;K@%J;MX)Z"P0A@9H-:./D0-&#P@#P!R L!C8].^?X6Z7
M>;*$&U>%2N>&SP58WNY+)!9(A!B58*NGI+D_T804/*'=[CQ\?H&!V.XK$VF5
M 0Z\B@@4*.R1@#HHD0 02I"2&EC_]3.*'OW@\><H_)X\-0F"@%JG1$@!ET6#
M2VJ-C,C0"80E8P&,QZ#8I'O9'7H)HP0CND]@LA?O(B)RK>='*>3*,9)+:XWH
M2.&)#I6I]9$S <9EY&R97U8(C%,!G=[3)A=D]=A9(K) 0&2XA =11FS2&+WT
M=R@ZQ\]^#"/Q]E.ATJD]N #+2J-$8H$HB%$)5 0E!1FM$<7 SD9,'B_Q[WA;
MBH16KX(0@JTJB1JA!=+1A$VH+-+C:ZHS*(M!42&G:#5!*5":$),:4+Z0Y&36
MB4@569. 4/^&?O%(+:3P^3D,[I/0^?W^">*7LMDG-&X)&SYBLTK*I-5658!?
ML5@E'!:(DC)(D?5*.0%E!8P7%)@-62PW^^<MBJ1;;T:BVU8I0ZL;*NSOUDA&
M#9+$1 &,T,":7P5.&.'C$XV0(\<G=![N@R3"@NV*K] ;N'1*AM($RL(B9;%&
M?E10"D2JQ$H/Q0BDS(!P&Y"S!_AVY>*MU/=\%HW9H&B$]#IEJP%T6:H$Q-;(
MDQR?0)(P$RASF5-5*]?%;R5._W/M!V@HG"R75J?H2,"6Q89#:(W(B+$)Q"6E
MS/]+6,#0G*R<XQ\WT4/X/6B:8Y'2@)S4@7*EY$!FFXS4D#5("*$'FP@0#G/R
M0;?&370;A:]^X(CM'1&Y 4D10.:*2X76-IGAPVL0'&;-8,G)V,Q)SVV(#VN[
M_^6_2&UE/K$!R>'"Y<I-B=(VJ>&!:Y 9Q@(PCW[SERBZ582@0$;*?]84I\2!
ME,<F%?YFP<ISX-1BD.A*8QK]:TLRRW:W3V$@=IO42?2LL0A:ML[5OUNPU@)(
MU?6F9(#2F3B+W"-G'V&1&XZV#WZRXWW3=1(]:RZ"EJUY]>\6K+D 4G7-,S*
MZ0 EU+KF#Q$D+MG[]^=MR)M%Y>]Z5IL+*EOJTA\M6&<>GNHBIS2 $1GYJ-=O
MSA.&A 3Y0WPRO1\W#V+U R_26+#X$EC"#SVCU9\_E%WZ_<<>1@F*=N\LO$AR
MF5BCU'L9*P!:O8RMD%D@%W)DPLO8G#P-_#*32A3!(/:)0[11/.JDFE.,!%!K
MZ485.HLD1 !-G(:4TYN0D>S^!@LI=!+_%5W !*;!BI+K'CZYWKLT&>3J)1J/
MU@*948 GO#;+>4C0(,P"3$\H/!Z,MW0>^_C3(X0O3(+0+HFSWQQ$*?W%WZC'
MBXCUQKOT Q@X/CXFA4R\!6GM[5C[%[$N4R'BUH:/K.W?O+$S'$.#$M@=<<VO
ML;FY6-_<KR\ _NE^<WUUL7K __BRNE[=G*_!_5_6ZX=[6T3S 6YK1V$1D0%Q
M*\'C"A:EH OB3ESD;6T2(0ZVFMV<T8+?*/4IRR\<)1C7?H"N\(_58$89H0$!
MJ<'D"DE.11=CL)TO"A<P%@B* )]$6 @'H"S62,SY#L;QQJ-Q<:LWOU%PZO0&
MY$<$FBM&56*Z6N.ENQR-;)(F.4RQ4%$^L/'2T$;":EJV4.2C^,LM'@UAB\ZE
MP+XBCLM>B4.C?#4#+TF8F)PM'AH.M@,;9$P5:+W*4/"*HL3'6QQ@@X O(!^&
M29P5PK9J+6P"#MW")@5>%S8N.5U#-)QY\XDUPJ8 5$'85I8)VRJ.41(WG *K
M1/I$B@^O*$5E"F;D;N?;R=("P9%AJU5(N;\W?QQC@%.OA9)0U&AURX8 ;%U$
M*H1T->!P-' 7UDB*%**H= IC_;-AR3F'\1/YW_KO>_\5[C"P^ [A:?A.@ESR
MAU7@EG]1H!2\E"/'U">))YE\46*/&I"*S6+D>7// LD^X51J7P FIN6KZ0\%
M-M-:U'%(K@2>IX,P)+S[WZ"$[[Y78]&H4Q6@EU2KA)[Y$.;>;&:#'*HCK>W,
M*2<XL()/($!'NO63\/D?5'8&R_& R@_YS=^NL,D88.)WOL (:/J7$"DX(A)<
M OIF)]Y\,#?I$%6 5EWTC)K8['2QP8\W88+ ^$^&E<L%>B&W '')8A#(O(!6
MGSJ1@BWJ$2XA^RR7V^E\;($"48!8%:)?4."&$<@X4Q&:F!8A? )]@;Z[?GM!
M08SD(B2@U2="4K!%$>(2TO5QT,!S70M$2 %B5812%I#R2$P;72>MQA,6^R9&
M<.+JVO>30K>!YN-5&5\MB)",!<J'*]/VI(*J-Z;B.\B&/:Z9*JJJ,/S&R,XR
M>3!]QW4;A2\H2MYO,<H$'YS(F>>%W)E@6U:H<V0L.O5X,_2R.A?3T_6:+<;#
MJ0VWI^I(Z\J=<=)#;,Y6LC>GIHV%3?*$(B4O,9=2GX!)@!;EBD/&/O^MNUW:
M$+71"+ J193!$C?@59!@:.3"@^'!G\#ZS=GM25S^SV'H?O=WHGFKL>J3IS93
M*0J8"A]3"YZSG$TMD+CVB.NGY6R$5 Y+.FQF7(=A+0M)?<]K!&-$F]%MO&\Q
MFZ[H,Y3S:-1K*N!+&D[&P"XL!S-O88,5U@)J3>MEK(#R8H&C[*09(AZ B6$J
M?Y_ W+@$'I2ZW([G$1K90R46?9V*+M74<>8#RW90+C[9!FKD?%T W/"^V1WR
M&$ZAKHVC\6PM1,<_6:N];-T?9?/<#'V&*O(PM,&(X(*JG:>+JR\Y3/?NKQ [
M*ACXR6@TTZ7*%+U796#\C\N*STKZ1>G_F-06?&;!)U3%(_!&F79"7?MPZ^_\
MA,3$!2P8[BG<N2B*B0LC>6]P$ZBSZY.1ME,J2I$J+[MO1.YR88.-U UUK93&
MU>K+U?75P]7Z'JQN+L#]7U9WZ[]LKB_6=_?_#-;_\>WJX:_V2*M:7)N,P8A$
M*D2XB:F923;;NA,;PMQ4<8IBW0K\$D^7AOB86_A.XD 4(F/*E.Q,NT#+I:XH
M^E<4;<.\2S1_WU& *@R*29E,VQS2=5&:KXDPJZ/$:&B#!Z<)7]V&J0B.-7=K
M&%BT1VYY8Z3GE<*OQ&]!A5>K@*E/IB)OS8QL>0>3.;)A4^D F:/-R!!YE 6]
MD&-G5<[6P]R*,1B.*=W0>$#/19I1<H=>4;!OT'XB8IU183*XY; P'B7+\)I,
MMS/' O%3P5BK,Y*E *5,IAUA)3=\)NF""%15)E,W)"+XXBN2*@>[ZX+3\=*&
MN,,V6$5V\RUI;Q<&Y'+D.@P>/SV@Z!E4;U#898GLJD3K>4?MG,,R!)93;ZY+
M%S2ZZYI RB/."MS6G9R5)VSVI-Q"<D8V?.$R;#7[N4!LC>E<P'2#%ZRMFX7'
M8T1^Q. %HE1G2$ORD(APNR2K"6J]2FZV3Z@Y74P:*H>YM=M#BWS&S97Z)!0L
ME@-3:@@X2RN2)5K"%0M?Q4@Y S>(QGA4+9MFXT5/&NPAXY_,@4R!GA539X?@
M;35R:4QE59M *5E5SL*RF&>#J6-#X9!68&7U')@+('=B!4PL73^F[BWR\S^-
M)H.SY61.G03_-!HOSZ:#&8 )N,=K0*M'@/'@#! 9HB07R$E_.Z2_G9P!//L7
M1.L)[MY3$5\:M\_EBHI+R')<9JX[TR4#;:QT$4Z^H<[=&&TTP-I,W+C!U4Z4
M1M8:5P=X<LO]P&$F#*;!#5SUG&X':#@:6OCMEM$)OE@;O]/FJ1GZ)E7$862#
MWY\+2O;5F3XFDX:]?D)2?,@-!38FB%V+ D<L#5(.G49A(_"R02@D3]7C>++4
MI4SDQJ BT+HAF#.R B1%UNQZ:'X&ENR":&CZ6-(Z2,N.L*QV@5@-04S+R6*V
MM"$+7!5GK4 F:?&=\OTS8)RF'3+EFGB_P-U>=,;E4FHM(R "6BDB4"5CG@JT
M'6L[N\B$IQ$@IX! L=P@H"P6;(1ISWN9R-3)]&YY/(C5?:Y(PV(E%W-D1^$M
M*3K>CA8&(";D_P.\P B\$B;P3X//@R%X01&(B?HY Z/IX&PPH/]CO\([X#YY
M"B/_'\C]'V"$_S*?GHT&S*=!_CED_TR)_3@FD1;DC^$^B1/\ _'N=7:+F D#
M=%U:B!_N;J'O7@7G\,7')PUN0 V?E%T)SN%6F[M6)1!0!6LM=B9G H3KTU4
M4C[3 5WR15*;N]:@K=-(U=B&"X!&@/7 P+(< 3^7(]/GMCN40#] [AI& =95
M\<IQ]L_['4R0>X$\W_%%5K0*HS[Q4I]&4=*:N=(:6./)S(9BS6WQ<D(!,WJ0
M,AC98NJG!+4S#SM#(,=U=?4":'37-8'D>^UXQQWKCM'*,S9[;&XA.F,;DDEE
MV&H;!R,X ZLDB?SM/J$%.I,0[R)6N->YZ54-3E8N#_MHQMY86\7J-HYX!<B-
MWGEJ[UOXW:NN9LNW8U.&8V>!'-N0.:N.5'8_D)?A2MY-FYP7:)M<!7$2T7:4
MWP+X3.)<\ G[(@TP$+P(!3Z=<?Z*DRB'_#<PL4Q!9SJWHL=:2[CU1(!M4@@:
M"8!3"#$)Z#7"BQ4)=@5O$MY7-Q'MUN12Q](MBJC.;O9#B3F-./::)B+P]8G8
MTM@AUYU8YOY3 RSP"-(1SH@Q99OKF,XA7N7.Q^874><P(G<BX )YJY(S1^Y\
M,1S8< NO#%0N7XP7')AMD[,KZK=6?0D9M4'Y*@.6RA8C39MM#!8+&VY)E4 J
MR11CM$V>-H?+#]4W4&(Q*%D<Z%+Q*M"S--R%BX96RI@0J9*@%;BMNI9O:;"I
M,INZO&]CMJEQLDR8T7BXL,&#W05S/?&3^K!)(_IBT'HE&, >LZX\9T7+KHG)
ME("JV'=R#A:'OIB["QN\L6VP=A7$6BB!A0(I-0%E#&8%46P(BJG9T7 Y@PMH
MJ0#R<!XI?+X-AB)OKLVV8B.761%LL!@;6-)<P=%V:*LP"L%VE<C4H@Q/95$*
MFLT=X%SXK[Z+ A>;%PX*8/)8M0X5Z#4UH5,!G3>DDQ'3I9IOIT-HTNQK"5,B
M41DK./ :;P?AA,^(6J_/S24!A-0ZFSY( 9?[/'!)T^Y2"'HVF&Y*(&LBM;FY
M6-_<KR\ _NE^<WUUL7K _[A_P/_YNKYYN >;2["Y7=^M'JXP ?CQV\WJV\45
MIC&=YY"64Q*ETQS^K#/JJ@RI'%O%_I:FG<[&8QNR8OBH:MD(<$?R&(]N@WH"
MSUJ<;+P4M-#14Z+1Z3OC@"L[RPH$[*X0#;V1'3=(0FAU=UA,4]ZI4!@)N/DY
M"N/X-@H]?A1CX<\L8W0VV8ZM":,1HJN^9TH(&*7ASX[SPL6STOG)M90$&SQ^
M/$RU0)7BVIL.3R'?.XFTR>IE-AAV8G*]FE@&N:J4>;1L<<;C@3;5T:2?FU&*
M^R9E?.9S"$,/Q3$-_;]$0N.M3J:U>2478J5A98F&W50.7<\*HTZ.CM.8,J<&
MA-QX.-Q+A!P?DOP0+/$K%F1%_RF8KY1#:P/T)N"5-N@B<M;":NEY4QO*?BL#
MK0>\'1AIO&61U71X/]KAX1Y3O2B8>95(8U@_%UXII+]$P7SC@Z6SU)4)(I,8
M&;;:V9+1*C0]U^15B!%^9T]8T"_P:6@7TC:]<C%IX-'I?U  7W9*2!A84XC)
MQ)W9L*FU@%H5L8PU33'.F4UG&J!'J1%4^+O&W($JJ%*20/9']DEOM\NM%1D!
M?%B<BG[Q?D?-80O,G)]1@(WS'=E0W6<_\(D]3SS[<E73R*7Q[*TV@=)Y7,["
MEF^\F YMV,1:@:TY;Q@SLWI*[&::CF8'P6R7Y:U.C8CYI^#4U5;-L[D!J1RC
MH UI[1AL2VGCZG(TS=9(Z>+V,F/%]RN!5F]56I,0,ZFD.0YVEW<=QO*W?B!C
MMWS3Q7QI3[/@)I3USO*$#ORXPY1_ N3-9)\NWKEM^63K*],\;2.?;3<1&MI0
M4$0*3O+Q9@)$&/YDVF].6TK=A$%8GDRJ8!J\Z*K,FOM4*T^GUL*ZD9-%OLS=
M\<B&6YHNF/FMYC.93%G_9-H#3U$Q4+*Y9Q2:!:P,K"9%[,\L6 &AI14Q@D)@
M<GF@!=Z'"]-1-%=!@O ;21BL7)4*YBJDUAFU)05<CMKBDC(C9.$LES9XUY5
MUBTEQI1*T]GAB&/$;,W@2([^%1)V)359+*>]?\)+M@8!>B1Y-3*#58I1N 0I
MM27?L=Q]5*/2_]VVE)&A#=7_A<!JMFA5*@I?)O4%%4T*0T=,J673WGYC$0C3
MQ4Q;J_OF@V<+P */$==TL\%R:URY5N_"G@-$1\$;VA"<HXJS?G*E8E;DK,F<
M&25Q.'=?XM^SBO=[#._@COF"O#!"C.X!OJ%X_8:/1&'D^@&,WJ\2]$P;I6!.
M_,P=?2=,,_(5?V^/8RDZDX4SLJ9$HK;9ROUK6_H0X+-?)N0QQFV8WJ5.WU+H
MSV3YPWRN0SO.91HFR;$?"QY,Y@(_/+K@#<^^WI2>/IXUFCH\#F3/,^T)S5]1
MNJE]00$2AY(+J75_3T+ ]6^A1LH4\<(9C&TH7*<$DA,7^NJ3L%" ):TD:)GS
M:FJF/>$-2N1W&R6"-+-I,)A:<S$FP5==!-(!U2]NVX8_9>Z[ETU/YV?;03"T
M];F3?9X"6+7-@0A#>8-H7099BY!DY=BS\C4-=UUB<GVBTP2Y*$4B6A:$.!S.
M!S;H?#64C?J&Y)>#K (6&<<RV?H"8]]1? 4IK3FI*H&5B10E9#O#TAMO'0OE
MB0.Q*DR4Q#)YN?!W^T18V$=(;4YF*H!E4I.2LEMIQ[,C&4D)9"USA!$9EIU?
MD?_XA&&L7O&QZQ'=[$EKJHU7*P,CTT$MQ] G9YTF5Y2^5@.P"G:3\=:UX6Q_
M!'2NC@/9@" =L;1CVE0L4C#S]'M3K4#5>A3C8MTT007!%@W! L&GV\7(8M%6
M R]0PQ]'O//B-_AC;M\&5XE79VN?%I,I=_M18&3.'V?F>38$476 W*F2T?U?
M5G?KOVRN+]9W]V#]']^N'OYJ44FC_"VP>>.O["4,:,?J-U_D;6G@,2"N,O!<
M,>4QL%MZZ YF-@2 M(!:%4O& 0XLX#?"=*2/1E#C[QY%I"U.N6QA_)7V5*U,
M38%>4XT_%=!YC3\9,;/4T&0T-BDS+6'6\Z$))UA5ZT0:KP*3ET_GBI.$SDCU
M^KKX"(G8470Y6TYL4#4-\&3%Z6UJCRQ^_U(&=C4Z] :.KBR [JV2>8@_>L-D
MZ;?=P&.\>?)1,C>P(N]$&6B3H!TZ*H/?&+?I6Z%JLUZIJ(F(S750%@L7GY+=
MXTVF+K1A5U'!6"^;P7A Q@1^Y#1,-A,#T%3MOE8W?N*XSD#7%_Z";;@0VWPP
M2F3[BAADW<N(_^F@K'J]Z6-J<X<$4ST16LN%#9GJ7%"UVW]&=9:VN#(3%WQ4
MM^G)R!TZNJXR53_!!JC"#Q$^DRZ>O1SB-R\TQ&_]AB+'CS.G+>^4*:+4='"7
M \V/['PREN#F+.<SD]W!E '62VNR.,R<Z32Z65$D5L^<OL!22D,B408J% E&
MQD)3X-*;F@R@40:H(!*GT!(G\"IC'<=VC8M]A VY6Z8;"[O.91C=H^C5=X2E
M:-H.HM/OW&5ZM?U*>80TY@5Z5H2I'X-=YDM*S0P:^YMQ QH2[)Y*U_4EV+3'
MW9%R+1K#N%C+)Z<@U?P!4LTV'@YMB%T\ OH1,FV%LEZY_[6/$W+5%#^$ F\0
M_;BW$.\PY%8)!3'-";E#V'Z-_02E4V/O[ XYX6- 1Z&O3^AWZONQ.KV#>EYA
MV<'8[S.9,3I;C&8V'%CUSE9RHYH-^U'R4.:#R7"IJYBBPLV&!"$O,KR4?/ Q
M_'[.9+Y<Z'4ZK -IE1$QQ,Y>/UL]/MNYYT!=QWNUE]\ M%=_SRG#V\YA_'2Y
M"[\WM6.1LQ@)9A-"%\2PU>A9UX'%9(QLJ#ZMCK13Q-KYZOXOX/)Z\ZM-O??P
M9D#FFMG.7]Z_X7W^*LAKW:R<Q'_%^WECMZ N VE-*.PXS8H9T'(4*C;+X7;H
MVM ;[EC\-;''@P'RF8#+0HG7X!$<!C)=))%UWI+DN!8)]+8F*L.J-B5B?V5J
M9[@8>C:4QQ'AXEF83::E_C,X.9L$CK]#)5OY(3R-_NOG48;.VB=^5<+S]8F>
MDU9O]:8C&\R(_F=8#QG*GTARQ_-G@L.'2'Y/_D55]H_D>7_"A\"V*KM'^3MQ
MSZWQ?.1JRX=0.)\KX_U(K;=RZ;E&,$9W)+5HXV'96L4Q2HHX&RK;M1[&0!'V
MEE/D5FA7'(.5*YVZ6[NZ+W1"7U-5!0;2>YB.1W[ (P(ZI&F3H0!PXUWZ <2J
M-'BD;3M%"E_*HG$+5X!>VHHE]"QZ:31S71M2S]61-LG;19:*D0\"Z"BF_4%I
M(8:RCUWF=^00:P[.$\*MN7%KE,Q5A[;;J0U-*E0P*EQ=V%(_.H[WQ-.9YE]B
M8^-7&$40VX:%J]9-=+Z#_K-(H[4<0V,]MRZ3*U5Y:S, %0%W[#G0AHR"(Z!7
MI9?>S1%UF(HQYSK=O-^&U:S#<[L(]]O$V^]6CD-<]Q)/CH1%JV^G$7K%VR.D
M9_ZWZ6(^LT$"U9'6/(5XR_430(ZBMJC)X!6?E\/H_?KJ<D/ZBD:O:.UYR$DV
M 3NHX^.RZ$M4X]59YK+%9,I%+Q4869JKNQ@[-C@A.T"NET].AP I?R^AOJO=
M+OQ.%79P#W<HOD/)/@JXX=]"4DW!O@U0\VA? 1W[]IV1 W55YA2&^RHAK&5J
M$TJ0DH)\".,:RHG(D?L"L?\6'(1I9$Z#2[K- %I+\K:<5J5*KR(W\T/ R7)F
M0W1O5]RUC?0)_PL+JU_RW1*_24R]@]<^W/H[*Z[>)%-F@+N+;Y7?"NGE3TI1
M>,O,+'5IZ,VM2&7N"+ONR6;LX,=LP#]A,39SVU"?4F;'WB$'^:^D#*_:"M;Y
MF$-J/!VYO4=@M^F(U19XS9.6TH,#@W4*1KR('5Z'6;5R8GD<FK3,NJ'EM51(
M%4@V %$@@".8QGKM5*:7'31\?F*'E(&%6,QGXT'O'OACU(@0L?#099W6X*Q2
MFVF;U1-'B]C0AI@)19BJ*J' ;(LJN(W0"_1=:=-$.0\[&"RFHW'O1N$Q"D$&
MNMZ9A-)F+D'33F?556OY#LPJB!,)GB7M.U61JFJ*B@3:HBTNT$L8^PEM*\C.
M6&H+5^=C'^#0@[!W/7^,UF@"7KO!0H$;1B!ELT]QB!>PPZLPJT!.+(M6-/IL
MAU95F:1CI/XX6W0)G=+Y/B(-A=JL7YTOK:B#AOVOX3&ZI EXK=P';=[***U3
M).+5Z_ >#'M*3RN(5E3M:(=659$PB4P':58GIMWYA4N'[CY][B!6./8ETU/T
M[G-&8#>2: %'R$XQ5L;.:4[,D6G;_/RW\+V]4S5E2DW3$42Z;!F%#(.6J(7N
M_93:.FTC6+BV;\$.K_[1TF=%N\L64%L[\],1[-OU,,)HCTW2@UIL\W9JK(:E
M43"51H&L\+&%]I:3B9W>Y";$'&U(Z!4<DYJ/XBQ[X0Z]HH!?OZB1B6T#DRU:
MZ$I)[[1Y25'70PO2K(Z4VCJE(5BXMF_!M"/H1-(WLB'KHP54=?]/60SMV[S*
MR7R9.GQ7?D5"?CL.:MQ)J9[12LRL0]D(PH')HL9'PJ[*+:7-0P0E%_$]+I]Z
M#1+>^JES,Y???(86NBR2)$S@3K;)=07/*Z]1S./W^7G\'Z:RT-&OR\Y*0B>0
MWY$-45M=,-=V3"JOV1!@^\YD%XONG^JR^WY&ZA/N]J0-*;CP8[PJ^,_$'$])
MP\#TSBIX)R3N)#Y%V2SI0,:%76&:"D(O&27U&TS& XO+9BGC;RB;E8]CO ;+
M+7S/2L$Z?]_[$;8S$@S<W^Z0^+ZFD2F]?%N,Y[V;_>JWABU1UY>0YFSX_\!*
MZ18_*TAH]L5#!%WT#*/?K2@JH+R<;=^-UFS:_F1R9$-(4PNHM4TUXR7%G5)N
M<& W&H90FQ;6GGCS3MYO\1225>"2S/,70J*T?D)NEN@Y7DPGO9<&/D*Y*,*O
MA4=B;$_DR!9Z(!N"ZIF<WS8-T[C*G=^449W3I_".;(B'ZH)921UEXYP!.M)9
M67S-Z"9U>^XX:Y85[8.CA;8LOJXNB$;P"BX(GAG[84YI1[\N.T]E)Y#?D0U1
M5ETPMW%!U&3WX[H@\KIFQ[H@I ,9%W:%:2H(O6045D!INQS.='7YZ/ !*.-O
M<$$<BN%95;G;0<B-"<#S$'^@44).-1=H*S0F91Q:ZS\U :^4?Q*1LQ)TTR6<
MVJ"$E8'6L[P8(_"HNRLM8T8.-85AP$V8&#<8BE.D1=:JW2,57HV SXS\22<A
MDD(N$[,'%]/MTH:BM"WARB4R8R(2F8YCT[F$H^2/V^)2U^9PN]6UE%W/)8W@
MA>>2W,[[\L[=W3Z,\7;T"[/36#N!!(]MB"+J@KG-R:0FN\>=3'I<>S()\C_B
MW'F%.T2K>F!;U'<2Y)(_K *W_(L")>L>6 US6;^E$\4_T+I7=S!):_WQY$<O
M J:(O.%,6T)CHQ8U^0*J0EV(C+L*F$XFKC_Z0^&IAO6P&:$UNFPZ]X/_ECJA
M__(<"ON2J7ES][:SZF=_!@[/!HR"*(?*+TL,#!/@1-Z>@1P9R* !@@TP<'_(
M#?/DLI[>ZVP'GJY;<=;F\SZ!4=+;IE:>%=<+QMN5P"?P!3WZ08!EYG_+!GN+
MWG*VT):KJM0"]H1S:B,9&)54+/0T#-F_O.QHLU*XRYJ57@5>&#VS%E,-O615
MN36V%&DWH5*/$376M ;TQ)G8D#O9"72M<'5A$'#PZ1?&,>W%OPH2A%]=0CK*
MRPKJ5ZATII-P 9:31DHD[&9E.IO/>J_OJI0:(@''56N$DK;ZR%A-^\+P(F%<
MA\O<P,V]'E<)>FZ\OU3GU^@):SNIDB-,E3D]@H_<A16^L&ZP:S[<,/A$!?5P
M*T]VXA[N* 6-&S  \ORT$TX>K$2*U.Y@'/N>CUQR\9!7-'T(+_TWY*;%L)]Y
M36I..;"FIA G?0UY"XF3C)HF;X]FR]ZC/IL:3O0PG]HNS\8&*!L<1(7!V1V6
MG[<T24+@D0< >(*"5H(OY"J(?1=%)-R=?.=1!!^I%2)2U:I,FB1;&7XNM8T<
M= 4'SG(Y,YDOV@5KO7P/90<I/R@,<$)#(4;.Y\?P]2?DN*F-X+@'TP#_HSZ-
M:S] =!NI3+J)N'^A4H-+A$E.21<&H<44FLQ,:(-117B"5'K ;V000$<Y9?!<
MLRC=[7=H.-A.AQC.R@U?$JR2=_"1,V\AI1XA:@":29" C,4\3&=PH*OQM4A\
ME !698<P <+U:5A0.B#E![^1$<S)S4/T'"0J8E,DU"\U=9@\H3E0L=J$<#HQ
MVB5)%9^BR#Q$"";T)P-"@PU"=7TC(]8C/,UP,P$24])%@EL7SDU>?;7!R#ES
M OOT3V4V4A4DH34B2&)%)"1D2[3<#H<FO1DM(+:0HAY54A>?VR9ZA$':%OT\
M#.)PY[O,[QRXM_A-$H]RJ=DZW-WCWT@/>2<>6Y^O[J0OH^C'.\G S*,[F2P&
M-A2*[6%*M6)NZ_OSNZO;AZO-#=A<@B_?[J]NUO?W1NYAO^QC?&:)XPL4.Y'_
MDD[T"XS]>.,5Y_N WI(O^%O]G2<'[4=AEC+RX-:B"K/'3N/HA=:B&KLO^=&O
M2Z?2,RK9-J00' &]*LC94* P%KVSH*.Q[/W#>. W,B*@0YJV ])RNW[P>(LU
MN=.<+"ACT">\S;"+0BJFIBOJS+<S*_9659RU^X%O7[^N[OY*=.C]U<\W5Y=7
MYZN;![ Z/]]\NWFXNOD9W&ZNK\ZOUF;VT'O_,? ]WR&%!&HSE&H7-<XT4WT!
MH2X7AL)>V05Z'^NJ)QBIU0IW>E-:0Y%T"*P-6V!+N#7Y/+"# S_(!K!IG\MO
M7TD \"Z,]Q%J[%0BX= 9GM0(O!RJ)"1G%;319(!L2&A7!EJ[8;KY97WSL+DS
MM9MQ@$M5@HR>A<V/MHN)K@L;I5+LJH [+8VIS[UI&Y*S&/W@CY,O&S8:)9#"
MAM'@P&73GK)^P^HJC%P_@-$[/CI^"_;Q'NY40A;56/4)79NI%(5/A8\%#,#I
M8&I#C&)[Q+7.H^N;B\T=N%C?;NZO'O1N0C2^A[4^S3J?<I6#C([5ZIC,MMIN
M?"6;CCK0SLMP1)A;PYM6F(.VD+93"(7)G4()7"VYL"($IG<$8='$ANU @4]K
M^1BU253*Q\B96,@W' R7)F.3.L*ME8^YV]RN[Q[^"E8W%V#]']^N;K]BP]=,
MG5W13!3-QS;\K+G(9+3U='E+%8XKW2=P[*J:52GJ)YMV0UB@:/H271M.0IU
M<\I7%8OJEFOJ6GI:^CD,W>_^;H?G7*UPKNR3:SF&/E'N-+FB++<:@*FQQ7@[
ML:$]S!'0ZPZDA]7-SU=?KM=@=7^_UGRX*F14"F;1X(AI9&.)%_/%P-&EBI3\
M?2UQ'[%JNE*.5=>O_:O0G)K<IR#:L!VVP5KW#U8Z75BZ\]&N>TT>P2J1/BGC
MPRL*5)F"*0.(/-=D[J4*MEK[P_7JWM"M$8.Y\:X1EE2D^"$W,K'DB(FSU);P
MH["?M$3==I$T?K(*R]5V[OH_[%YDSH:M0QTIMPTJ#<MCO);N&W=^_'M,KR@<
M?-B#?J!0R[^!1Y_P*8$O"IZ4@<6_#=#8M:'D2@NHM0(LUYMO%^!\\_7V&PW@
MNE_?_7)UOL:_N7FX6YWK]2%2G_OY+MR[Y^'SRYX$[Z2E!L[#@$ZF06ET&H!5
M-)JYSM"6^Z?C9G"Z)3[BIJKK*A[S&K3=;9D14>.W89U1UVMP-HCDD3N=2";+
M/2)DI4&$I+HD3 [U($A\.N;5&@YG2Y-U&]01UE36YN:7]=T#=>%<K+^8N<DB
M<!6-5 $IVWJG<U=;52"%XY 2UNX+HL42;5@:M1GKM#Y/)$LV''.:\-62ZC"]
MI0<:VJCE*=RY*(K)=57R3GK^J M6"WZ-R0)M)U7*%U!E9HZMV6(ZMZ%;:$?8
MM?R!OZSNUG_97%^L[^[_F=ZX/_S5=#^ \/G93UBR<N">TU+ACR@@Z0S*MY0M
MQ]!8C;_+Y$I%I-L,D"9YN\.9#1$_1T"O;\Y?OUX]D-B0>QHJ0JQH;%6O;XQE
MV"E-3JJ(VHW ,C0@F@T\>PRM8Z9PHB6V1T4U;:5M![%,29U:EFTP]#K"KHGN
M81A6P+XX4#^&H?C\3[4IF<[J,4+-%4*;./1Y Q2 %YT"$G(6Q4ZNNTP&Z[0&
MRCF14E<1TX>KG^_6:ZH>#3BLN;.0./_D]&RO1YX'+;A#;0_X^'4Z^1<N=S(W
ML1C]QH^3(O,>8T60=0>Q0&I,>PQ6CA/MD7OMPZV_8^VM W>3/*&H^*O&BB5M
MQM!:Q*3]Y"IU3=0'H(L_72[@UH;N)T= KPKOZOS\[MOZ JS_\W9]<[]F(KQY
M^,OZ#IQ_N[O#8@RNKU9?KJZO'DR=S]+B"/$M?(<DU$UE\@=+[7P?1?@[EMJ\
MIWT"B]!93)!K49QJGU/L2Z9TUG ZL73U^O8-U(KZ6!^?#0?2GJ95^];2QX#T
M.6<@?1(HC,OZ0]*G%7]=.,^>@?2)-MUXE"]O&@P5$;&I:S.9Z<&G9.[^Y70
M;9!?%8PBQ?_KZNYN=2.[CNAQ&6ZCT-T[R:^0-$](5 N!-'.E);"GCJ/+!%3+
MWVP%N_N*Z<K75%R[UN]!<VYF?R)H@W)H 963?4E80<9KZ6W[5>"$S^@!OK4H
M>2;AT)GVU B\G.XD)&<NS2W6';KNJ60BIPRTGF!WOOFZ!@^K_S16\ZR&O"$#
M34S/@F>7,W=J49"6.N!N:V/J@V].>)2Q&/WDCQ,P&[88)9#UI$;"!#!7^VVE
MUUM93$*<RZ2 -<E_4+Z+;>9+<\*7XXFNPI1*T01M@==N8K[=/V#5<$>"!\[7
MQ+]."MT;#QY07\<.;T1OH$#/(FF##FD%MAX*4& &A-M24_4>/9*;JCOT$D:T
M<7!#]WHAN<:PSP;(I2A/ 2V+ 1\M$+(ADUH-92V&<_TSN2D$=^O;S1V)D3)3
M8KZ"737\MIF-SM[;CKR%KLQ#E>+R;7$?L6I&%$"+F' 53G-JX<2":,.6U 9K
MO9,UY04YL]: M/7SRRY\1^@.)1@$:6 5(=>7AZ0U\V@*6%$%GT>L-#&P.*(!
M<IR9Z;B5=E"K0K7^>GN]^>MZC;79 U9JI)O4^=WZPDAM7M%,5+)46_"R/7E,
MVA.:WY6. W^*U>Q!)RCF3+=B-ZPI^I!!XR%O70#7PM_$,F?\9+3?QNCO>SRU
M]:M"ZTTQN483J %RR>X1T+*(+^C.K:@6K(:RWKWIR_WZ/[X1,WO]B_90:1%V
MN1DJ(F;14A[R;$KX441[Q+H8^<0;3SQB>G,?^1%B9<69IA%A38IR#L!8;/*G
M<9I8K@+WJ"YMQPVIL:WI":9>:G!ZQ'C,!^-,!E.394%./Y-:^U->EU/S%QV'
MWM1T/N\*%QP2%JT7&XW0*Q<:0GIV1368C3P;U*PZTGK,C1\X_LN.E>TKC6,\
MX,L/HUN$_]^]0\X.QC']G.CGY?[7/J:IF(6^P,)XI+;#Z P&ZS;%<FA8NS&8
MQAF,YE:DJQR'OBK,U2&(2&=1T(:E^5N,-MXZ3OQGF*!8\#:J1/HDD0^O*&=E
M"G82&*"19]+'J8*M*B.8EHA%3FU8+BZA'_T"=WOT%4'B5"'RSA2XVM[:@E^?
M-+6>5%'0E)F9+IB,1U9HLHZPJ^))A@%T'% 82"*E?=I+,'XB%1/P?T@QHE>X
M(U!4#"<51A9]OEQXHXD]KH\.R&O!(9B7%8@@/Q1&,6VXMUG-+J]%JRG?OVC:
M<+1LAU99$L]8*_%W\%OZ7]-1D-AP0QC<%A]#%-903,WN,X?3[4!7-3<%G:(*
M5YB_=QC =.'TQF52GKK6DNFGE"X;R@0J0.0<C5*6=A^]WJ[B:E(E)C?035Q!
MHD2TK!>F-YIJZUHE$RHUE*)>XK[QDY2P :":4*FS6]#(44'H5'G9'K08#(U&
M*QV'6M3&L=R_T7CK&](2A;5(41-)*8?.=C>-P,N-;H3D+.-KL/06NA)29+*F
M#)3?YD9_#%RE;H1D+13(68S%:+8<6-!SN#7>IEH7O82TJ;U_]2EI"UP[O> ,
MC<>GJ8*LQ:151<6T\;M^2U#@(K>2.,\F)%!=#3SZ]@8E\,7=0<I 5VT\F8Z1
M#?UW6T#EJ"-::"?E,6\<YRFSJB<L$;F!U&6E$Q:?-O6USP:>574*I"C%B<O&
MI6@-H\ /'N-;%-T_P:AA!U3FTJBNU"904EAR%F8I3A>.H^L60ZJRVH"M"MH-
M2D J;#]>AW'\)X"' 70<XW['5Q3LT1URPL? 5P\\4N#3Z854G$39&=G E(9*
M#[R1#3ZDEG#K3DK*#@K\9F*[B<Q_P8<\VB4.!3&-)MF\I*%]5S3[VW]%Q$L1
MBVV=#L.PL-B!,]]:="EZ]#QJJ4BTM0THC@;6;^1GTYKFB)4__J5IC3,W*^)#
M&VY7CP)?BULG@WVBHY&3)<W&71'K_Y%&<%AXZU(K@<$RO,A/HNMH&8?! B5U
MX-*Z) =R%AL[7\RML-Z4@4KKD;! 7LI)2Y/TX@J[#H/''?XTW%4<HR3&G\IN
M[Y+:%@Y6[?C95T&" 9)FF8Q P5=V])":G&DGFGKN;3MR/!:,Y,WG(Y,=O$\_
MDYK3'0_^Z9J,#A@WR,<'V0/ X0DID>D*XB[M&1MCD.=AK!IMU<BEL<:WV@1*
M1;OE+*PBHSMR)JX%*K<5V)J7[\!,;QIO\:L+B0J&N\R<-2V =RA&^,62(+(+
M?+C:A?0F- 4GM5^5.'6>GI4G4CX_-[+1-4;N;.+IN@B3GZ!; JZ?H=D 5"(+
M0]@BD=4J-VV"W15YS54E4@YR5V)DP5S3H3.WX;J\ ^1:/N,>ZTH4QR =ZTA9
M%-BF/X=4F^/%BQK\A,WDFFQ*!<BYO2BA99' R['CC4W;@LHHJS)"&4'*:5A7
MW:#OA=S=* SPCPY+R&BCMMH/HT^#=9UB49FU'8-UBAB,7&]I@5X[#CTOSI9X
M?O(107G(7C3>O?.$W/T.;;S5;A=^A_AAEV'$? #D)@?%#R320:H&VX^A23=V
MG5RN,-L.D#:I'F_G)IV4)X!><U&FHQ$'$<S& UX8 8>YBW9T2-,&8C[GZFTF
M*8?@$,/8W^T3Y$IE^NC1-!J1QTVX9%9V&XJ)S7PZ&-L0 WR22<AD'Z7#@A<4
M@=B"^^W"9X[W#)?,SG]%]\C91[0;U_J->+J0>XGEAEQ5[%DED/H+4O\:3O<@
M$Q_*J5\3_QLZU5.8%VFR0%;<,O0]/^FN@Y_X*7LDB/-GFNXFY\?P\3%"C^E,
MTS@$I0U&D5=CK[DVDRFUGE-A9 ?\P6"XM:&T>@?(,O%T2\.1WT1L0&OVASQ)
M*^L"V<X&:F(WH<O5IL37T')>5@]W (=SN\R:-JAEXNK;GWO7.>O.KGR[;IEV
ME;A+.)AJ2TN7"6);O#(1?"EFVB%+,NT.7]JE'_@)HK?&U<OGEIJSQ4@FE&CK
MB?+UJ?(P+&1]-)]8D;I\] 2D1@'RZ*!@YWNIVLV##* -00;%C24#>PJ1;SF:
M&=NAPX1%ID2+H5@XEC-;C&RS+#I/0FYH?)B/()2I@,M]0GJ#/I,+S']0&S^]
M%&_U99SF$?H_EU.^&MXW=(KQ60S88#RWXGC9W\RD3I(7;%6]T>J$P*.# U@8
MW?"'ML'V'B076RP+?N.Q-'KUQE)M!M#WD;2?5O$34.=FE]^3^7)K0TQ'5]PR
M\0VS,4%3G01-93<P"!+;IZ3CA=0ZRVU( 9=+;7!)F3\6+:8C&PIC*H&4"903
M/K^$ 6T%@/^U(\.=*)BM\3I]DSRAZ"KPPNB9!>6C'2073R$3[3:WZBV'TGZY
MWFFJG#OV5N.P+'IGNAR8# 8^W0QD8DR'!85Q03HP> A/HBI%TKQ_>=G1X!.X
M(X4@+W?A]Z-$^JCQ=,GU"29]$.XC!F/[YFR(H,D*!">>1KUGRV%D5FR4C-VG
MK)^H&E?9_KGVX=;?^<G[5YB0B\EW19.APTBZJW=UFFB]JE>K85B@W&0V')K,
M3#K9!&2Z_9GQ^ZR+QL$"9L;*"TL'-2WRYV% \U7P%"_05LT>;N#1FO/9#+Z2
M]2EF8'=LT]%L9H/_K@54N9V<#P-</(XE'KF-=Y_@>;"TZO@NW.TNP^@[C-K&
M[RF.8L(-W6J"?/>STA#LT@(.T<@&Y\%1X&6"')/AL!9-LYGW29S @"1ZFI9H
M;KV 0I+_E_<#25H#8$5>1/IJ?D$Q-H'(C2L^O3K4UB*_VAPF2/^&(L>/Z:M3
M^D ,@S)=LD+WZV^N?J$+4?I!H?'0ADW,IG<A=T_6U H+7C@,#;;OX"7R'00H
M>--:IZQFG\*=BZ*8E="Y"1.4UAB,-]&=__BDT.:T^WC&]M;VDY;LLNJ#I8U>
M)AZTX@L[S32:=][OZ4"GVWH;':TY=M'G_N7]EGR1=^2#;.-V/6I@[4[8$[P&
MCDOVB%'9$7@+EZ[)+Z"O^<@^!=Y'\%$VBDIM9/QRTH*TF</#;W#TGF9((YDA
MG:<NR %I/1XKSS!VEM"*&F<GFXDT9"&M=XS2:SGZH83TPL-A,<Y@=WB*-=])
MI;)S[@YL^6VH#F/B>V@W1?XWH#9&&K<^'EA1B?0X] H;PSL@/;FC5X2%/_%?
M\8"F:TT5,H0OPOTV\?:[[)L_=']*4PX$;ZWE&!KK4'697*DJ59L!V*7N$**%
M#04*CH!>JUC5)>N[+[,WFP/>B2[] */"%M9A/J4\]YIQVX*7[6)3Y+JZHF%4
M&YVT!E^K^\@6D!">IGYN0^.3%BO5<;[:6Z+H$#[CQ7BZ *[U3>$(FYEFH?+9
M\ ME<+>$#N.PS*B1.QCW7BQNR18U(-FHV$B7;1!'3Z1>V?"_]G%"R\8EX:%6
MB&D+YXB%/\$KTVKOF)9Q&RH5' 5>W/>)G$WS\0K-=<] V3PJ*#S3I;K53,"C
M[$?[K/GN9CSK,N%.MA,KQ+@#YA:&^QD(D"36H\=EO$$)ZQ<CTCXE G9%-_/0
M1%>=U01%\L86$GR-S7%,:X1\AXX?PI7K^JSN\"WTW:O@'+[X"=RQJZ'S+'Q^
MXU4"C43R>I*A==:H/MVK*!>R/GY<UB_"&:(MM$$3G7Q&8L,Q9IJJ$I,&/@$8
M9[]%[I][.:Y>!?C+)[$#004[_HAYQR,YO:8#J0KH_ 0J(V8N P]MI\9S*M1A
MUIO>,4X0!G49POL=+>/F><BAA:02^ 8BDB[YXVCQ_QRIF04RA1$3M;]*DLC?
M[A/J.P[Q5_(<!C2L);V-Y[T%959-DM9R*KG0*?*QUD^+V7AH,H6W.V+9SK^C
M;?&*XY&$!C8B* YI6:-&6CB1)B =4COCU39.(NB(S("68YAKXJ@T.5E+1^D
M;+]#SLR*NX CH%?E^E=$HH1(.Q6L7>$C C?[YRV*P,8K"70,"F$6DOVZQP7/
MD*9 &<Z-Q^!=Q?$>N?0]\-9:E9>]J\7(F>EJ/:S0>*\;^%K5?4)B6"&U7<*.
M+T*G&M(FE3:$D;0&7'._B=0--N12/<.&.0-T(#-7"X)IIO6&&<Z".FRQM*(A
M6!K\=CN8Z3H@=M<[:G.HKGS*9;R50\'5LWJ%_JYD#18":EF1:;EMU'DTG8T=
MCIJPT(VG/A2+M1R-1MH<?C(-=I))G.1L<&BK?:3[X^B/@LZTUC,\"B])VK;@
M/3;PZ!-P)?!%,98RL/O0[7;NV% SI054KK5'*]L[3/1L*'"?[@$M1:V12V=1
M;:4)E,MI2UF8I>3 X=0&SW KL((=_L1")W#$E3V)*"#UT>*OB%@H/!>0E%R3
MPTT!<NYDD]"R.N;>;(M,JJAV*#F=BHN^W)2SG^2B0E*R6#YX5+K2?H0 #SD\
M-1)FCPR7PZWQ=K]-X&I!U#2Y+&7H;\FS[*"&-:^2Z5QT/L3RJI=ITJ9C0W=A
MOB=5$SK^NF<<O2S\+?XCBB)\-B7/DBR]@%#3XDMAYLO/I6+A(:/I".GR3PH%
M0 %?501R%I9AJC?87+O##@X]??5K&X-<ND'G'RN^IV-]@JD3C]IY5BUGW[ZZ
MV<Q=C'4IX:Z+JS8#D1U?<]7>FUOE'D[Y8Q<MQ[IB(Q2\K2T0M[S:^7@'XL$
MSK:Z4LT5UJ859CL]WT=V>5L]DT!544#9:<;6&"MXRI=1"A8\Q<!I1X;A9&0R
M9:C'*56_D#4-X6*MUVQK"GB^@W&<%YM(BZJLWGQ12HF$7F.9Q";0I1*)(N+T
M'.]N!S;</2O"K+F:"!N)9DD9P28"E!407M,U")["*'E T3,M^(@?)!$L :W.
MPFL2L.5Z:!Q"EED_'P\=DQ606T"L^2\(RR?" PC3&2!LX#?">&1>D,";T>S!
M,N2\:O!;<9Q"L\',&QOW6,B U<+B3N*G.G6Q7JXH-- :*\Y;%P\I(5N/Y=S5
M=JR6[C;-$&67&H0'_,:X^M$.1;/L."O^^.%T)>L?/^5#\G[WL5C*@C/V1L:=
M\">;A=@B+_7J-FTNX2FQ(J+[V ]0'-^C1YID)#.;Y#P:S2<5\"4S2L; KN+'
MT^G"Y+;: 6K]6BAE!1DOR)AML-!96-<#?%OM$VP DAJ;\%EFILL8] E;,^RB
MI(FI4\^6AY8V6.VJ..MI9#0V#S."G/,,$-X^[??[!$7PJQ\GMW>T])CL)II/
MJ>TR6@:T<!_-(V.>Z3D:S4S6>U,&6%<_*0](F?JUVNY1].H[I.KB0P1]LBU+
MI$)(JTLN&L >)$- R*IP#,9CS[BEI :Q)AV,"V VD/'U*R!IF4+\P/39=^@5
M!7LDBV60<V@+:E !7HAND)&S2^C9=N2:K-S1&F@]WH&I%%)J)A.EE+U?*:)Y
MTP%D>?UBT>&2Z4QTYT,LY[>7:5A<X60RGQLOI]:(CIO-GC'T*P _H_ Q@B]/
MOG.''O'SQ#(@HM0D!G*@N23PR9C5!Z?>T'B- Q6 57DX\ #&U*],?".]JUUZ
MWI+XE'E4FF1!##"7@SH)RSI;P.7,>"1L$[CJ^C-ZP!@4UKY/YP3<H9A<:-"&
M>.D>Q75*\ B9$85&<&Y!;=462&OF'F%I**2EQ]$E6PZ5>6IU;!TO.U:4"I>B
MJR4R4_)/! KK9'J667:]% F,HZ0@-_A?!YG!__C;5_A?872^C[$:0A'/&RHB
MZE]*Y/"(>/ I6'J;.QEZ)CU/*MBJHD'I0<Y@@Q=S_4;ZD.[]^.F9%O,BUU,2
M'Z:87&-YEP;(I4HN EIV7[>8CV8F:Q"U0UF[B2EQD4 6>K=H@5 QKVKNO[\F
M#R&]WII\XP(.W<YQ*?"Z=YQ+SI9NBN9S&SJ#*0,5^,</5S$9JPUB=HNA-MRY
ME$GT"1(/6E%RBG]GMV 033P;+NS$R&H^+/PO=E5RO"P(#J:; /V" C>,),?2
M.HVF0ZD(7'XDK1*PU^DN'6C2<%& 5EUI3 U2<J,%_=/.5.+P(2XA.VJ[<*XM
MOE#A#*J M%8Z-:M/GO*83AN0+8K*;$V4RS]"@H;#@0U;>2/ )K'IUY7X\#UL
MU-AU&DT:6P0NU]A5@BQX8.09KZ@@AU9==$S=K+$UQ:G&^$1#?2(-,:HU.IWQ
MJ0*0Y=C4"A%+:9YL)]"D@UD17CTF-:91?)2A[YOK-+E[11/"%9+ORX2ZD^]Y
M,.O)]T4JUAI@/IH8#892Q2=.OE^Q]/M>I(#5C<<'2GR,]%\1.3U@NU(L#')Z
M33*A CH7#1DQNUZ8+">#@6D)48=9%9318#@#C!WD_( ,8+Z]2'/%/IY.;SD$
M.R:AT6RF*VQ)X2AQU!QX!0O]8L'"CU66\S2OR.(RG*<28AONU;KBKMVXU7KO
M@'PTTIXN*[%9&+"YB+ NZ3Z'\=-M%+[Z+G*_O'^+$>FT$F+-&NS]X''S@B+J
M;Q4Y.%N-H%6JVTZL(M&J[,Q_/9\MM@L[1+H;\)IYCD<!>\R,M3$(<R;3ASF,
M:A6XY#_$#'C%9P>2RH'G'$7O>':_P)TP&D&15^.AK\UD2@=!%49F<H^'HZ$-
M;2$Z0.9*)(E7=<@/Z#!*+Z>%.Y1 /\@+JZP<9_^\WY%&IQ?(\QV?FZJHP*3I
MW* ,/S\\-'(PTWRV@&/CZ10ML7(\DAD]<!E#3S+DA(^!_P]!F)2 1IN$\,$5
M!*),P+[. 1R-C$>^RZ%5ESNG!A$C[R=_AOBQL&#NHR#.FV%>[",LG[<H\D.7
M-Q$%)ET9-:KP#ZDU31SL-@F.EP.3Y?6[8)4W-XVIQS)BHVEU/*3!_5B(L52^
MDSV36F5W*$;1:_T+%E*RZYJM.Q]9T-.C#=1Z>$C*!E+RGG)6&MZXTDPTYJ^<
M1D!,GF<4X=5.XC6!,'W"ODA=VR0U.(Y1$N,?LM^MWUY00 )Z*5+211Q;)M$>
M[N*TQLM[]B>!57VJP36V*3CIZR@5;SS)R$RR9F@PM"$6JH\Y"<H)G4B#'A_5
MX=)*-3'>F=,9BN(0.(0Z6SJ+8)8;-%>IF*4*I[.)#:?R)GSUYLDY/4T\OL7O
M)$R3!M,!3'N(:*M)(LKXA1*/PP4V^7?A"XD=E<N3"J,^^5*?1E'>FKE85O!\
MZ"$;XL[;XJV?[!@K=0L5F#-A-)TK11S^K(!Y\:S!BE7?H._T3^+J0&K,.LL$
MM9E.N5Z0"B=S2+NSJ6/#Y5 7S+7C"65/:]"38)>L^=#Q00Y'"^<E<E$$=Q?H
M)8S]Y"J(]Q$YX9Z'T4O(G/VW$7KV]\]RM=E^&'T"VW6*1=%M.P:[)!QN9T:3
M?D^#GNN!_P)W9(@8K!)PZ0?X9Q_O_GCHQ$_V_77..0]IO <#?>?'O^//D?P"
M/G)/X5)R?5VUFB 7NVJ):%F5H,5P8#15K!U*3@'* R,@G&?@P*M'8*Z"EB)3
M9C E-#S88K$I4K-+D!%T!_8)CABGBNA<!7U+SVV8D.@RN-N]7]0JS/-FV,"@
M*X14!?8AE%1&S1RO$]?QC%_WM<!9"RT]L(*,%]PK5/#O\][_$%ZDU 1(1L]\
M.TNT75I4WT(=<+V2.<]2!N&!WXX52VLU_@.Y2@MV(&?;Y&B++2R+UTN$MZZ;
M#X%M9VD3)G!@-IX%GMX%8#/5CY^0^W,8NN($<#ZQSMQO&=QRVC>/DJ5;+)V!
M8X/K6@5C59PR4D!I;9&>._C]*TSPX1_N&H6G3&M =GA@N:)3)$Q;>(W'2QO.
MK H0:WY ^!WDI$9V".%5I7P5:M1ISA0<>KT7$5RRI0C0(PF$DNT/JG![OIT_
MW2<M7"3EB1OYN$\A6R9CMUI E%SLYTR95,F*9.M8EAO$;;A6_#N[5ALY6VWY
M>0IFGQA@+9LW3.#.EH^W\+HE$S+R@:I*@E4&6A&4^+,[ YC.?# -]6.+PV&R
M/^L,:"E#*H>DL+^E96Q<9VHR$%*.JKKR+'D?N"FQZ<NJ?13XR3XB5=(O_3?R
M4_QS%,8B29#0:[Q^:@)=NF<2$;,;QLEX,;!!:RC"K)WL,C8:-I(Q]I;F38,
MN +")]&8S,V!5LK?+OR=]4&:.0XT6?>E&5FM+F!&;+H\VWZ[\YUOB;^COM[;
MB*2Q)>\D79P4S<]A_H*>?&<G/ 2T'T9CF;>.4RR5@FLY!NM%.=PND0W>@N/0
MUW<]1F4\S?'%QQ8W\:&R?FDHN@^]Y#N,D&S7:V;3F=RH-H5R7J.<AZF=P=A!
M)JLA=4/+<9U3%KHA9GR&Q8Y6BR8)ZE?/+U'XBH2[J J#/E%KAET4,C$U.P6-
MD3>T(9-;%6=5L'(^4&0TK=#"($ZBO4/<-E<!5M*/^'5)14O*H;5Q;!/P2OM8
M$3GS8 _08JXKYTJJO%2!UEQ!*""MR@NR!?+L.-/VGFCOE\E9$Y-&6TX)?LER
MDW(P2V>V]:8F*SYUP<IU/P(G+1B7C42#OFTY:Y12T%\BY/C418U_WB%:Z3IP
M5\]AE/C_2*,N!6]#\/9.-[S6DJ<G?265*JDG&9O)W6BV139T]NYG5G4#(8[_
M#(HU$(H/LU6'TU01L>M?@<\"35Z=A)(RSYC8O@P=.+&AX6U+N)S^@TR)KXI*
MG%XRF+]CR#\&L0>]0*+UKJ$&K7+?D/^=)4Y-/6=KPUE9C*PJ&*?310+_<%&#
M;CQFSA:LV=R8Y;E!U7DU>93;3B9W-:LRLDNBX61JU.5R!.1:"FMA%&)-)NP\
MXQ?.,]"2\PP)ATO0M?]**K@E>!+^=H=8'OB7=];Z:0=C7D^M3B-HO!AK/['2
M59DZ.\MG<J?>PH:XE\[ >8&2"?I$1P*'H0 ;"VS?0=KIBPQWDD;R)PC?2-!N
MAYQD#W?9YB^MQRYCT!G:T02['.@AHF8FN3><#6TPWE1Q\MH$9WR@9,+=0I)G
M<:HZ[GVJ3FG80".;%4I2'$30P).6Q4/#J0U&83NTK6717A$LG+V+YDC[UR0<
MR HQ;9BFHN *1F'M1UQW,K7A%OI8_,T^FB*OO9(M=M T,5DAL0+7C)R#;9G.
M8#:TP<_>!BM'I98M21O\,5<!*=&:3^HA@BYZAM'OXIA](;U.L[$!=-EJ%!"S
M#7 PFUL1^J<(LW9YD],9BM*O?03K-V>W)[FD),WLN[_;\1>EF8\U6T8C"'M/
MUFD3U=\6./^ZS4IE(-%NEWL:EEK8)M.:)JMMG$30Z; Q*0QIQ;:E/'7%3:UQ
M/)9S[R%DA6(ZW4QDSD)[)9\SO1OTECQ\1[M7]#4,DJ<.YUVE0:V0_A;35SUR
M-(_(;K?0;#:P(5;LE'.I?0,OD;\#0_ )7""'.G? >'@&B(!^J$_BKPA&#]_#
MD[S!?"Q;/X#*9+O+?3H0J]I!/#$VM* ]P13JUXYEV9Y]/-G&3Q86Z>LZFM7R
M79SPD1).AJ("XBX7LZD-Y2=/,HDF*9]_."F_Q"_Y9&^,#6:SC!>G>YR(DY'8
M07V['$PL]U0ISZ%)P!<?3\#]6EN)8P>S6L#]UQ/I<#(2V^,G:.I\3#.E/H<F
M 5]^* %?>0F*3BKEE1%M%77NQ+O+>VDXYLPC-;5LB&$^V41J7LDG%"%(Z/6W
M7!)/JG)CU$S-"JTX<+C0Y3AH:KW4 FX/=6$$49I*;UQY%MKB,4\M*":;A+2
M6"L;0P7#=!!0.6"TJHT$^JN)26/^C!+\4E:,E(-9SFB[6-C0^J,-5FD,;V.K
MCQZ7*&VF'#S2I-L[__$IV7C?8C8)W@I)&5A>KS>?SG4=SQ2N$UL@KBY3S@HH
M+Z#,8.,!S,[N%$WGN_MPF]:-:+@DY%)JS' 7 RVEMM?)6,#'8+1=VG!/T0BP
M%@=U8+#@ \_0O)_OHTB0F2CG2/MKC#QD0>/-+I!K92P8$;@E&AEK8_QU7X?!
MXR=LIC^#B@*P:05O,&?K13PPL=H>+EPN=%EHW==1A+KVK8G6C09^D)6M++9-
MZ]EB%=F5_W ZA/:O71FKC64Y&]9#;9I:.^N=1H!L<# VX:L=RVH?=LYC^JQ6
MGDI#IT8^K2D1DO5CY!$R+;Q%,\>&%J *$)OL^I,T6Q3X@<KP?D7D"('<%=:H
M\)%T='^&?I#]]0'O73P?1OLQ-'F+NDXN=R"U'8 E'<SA4%O?=Z%CZ3CHM2;&
M*?\GR 8 ^0"IC)(A_EPU;$RG")$L#X3*;^+"CYUP'R1W,!'IOV8VG;77U*90
MKL FYTD+YWG;N0V.JG9H:_=U*24@I-8)8'E65X%/.F5=^!%RDO,PSGKP;O W
MQ=&M70<QM4^K3D^\@3>-P$1A,9ZX-@CN,=BYG3]OH>^"RS BN6A[DNQ[%9"\
M IJ"#AZ>$/B*'[2/6!$%X@B@FE?)A6-,W>8&\"U\IX42+_:JP=/=AS.KGMM,
MN4EMJXS%)&L,O;$-2<>GF47-)':2D$1EM R3MF#E)9'"+8=@GERT=0OE9HS[
M58Z:@^U!PAW7^+A79*/Z.K$0Z\KF.X6>JN*N^7S80&=UIVX^VAE(0K!%='\_
M V1 @$<TTU2IU;1% >"M!V'WF%NTG%ET\WKD+&R/_>Z\TL>^)FL5V&G%V8:"
M5]V1GTB-D3'M5V2B*/^V8S ;U1M.A[K2<D^LQNJ3L#W O^LR'_F2;-5A)Y5D
M&W++.P,_C0(C0WX _24(:F\[!GMY$+D#BYJC'S<)V_,WNB[SD2_)6OUU2DFV
M(42@,_ 3Z2\\I.G0 M57<.0;M%&DCQ%E)@GSY7QH0UI1-]3\RD9?_<!_WC^G
M]Q,9L\U2^BUPTWM$Y*[?'$S*KF"ZO"SQ6);(;]-DE859-!#+L-P.1E9DB9Y@
M"OSJD:1 *@9K.L@^;9-'Y[79[OQ'FK815T*H*R^EB4E['\,&^)PNA@(.%L<R
M&KM6E,YJ@[56+9(V,'3!+W"W1X?[WL(P-@4('Q>R[TX6$VU= ?%G>W3 ?@Z8
MKQLLCN0^163^R%V.M-U"=ETN$69Q7'XQR4+]6SLB^I($AM G\2+X"G_4%"]9
M@Y,'0N9_80YD9S%T3%[BR3#5&RI&STWY,7K292,$-]XU#%R!'!<)-*;!UF"5
M4E[SO]*WO$5#9V1#F(D(5RV5%=,=ON=+Z%#58%588'R'551>.E!DL37PF KZ
M$X 7;RD5AC3L>#D9Z]I.U$/ZI%!K@A8$I%$"83F%MA%L&%_A&SE:7P5.E".\
M1?@-! E\Y.XB31R:MA8UX/E^(R=G*[&=#J8F72>M@=;+P:=,3&H.;& =.W#'
MTN_/=W!O?.OZ-8Q^QU88Z:F./P8*+ N\3E$+/B@51GVJ2WT:1?W5S,5.! X:
M3FUH/M06KS2DWG2[TM1Y>!E&MU'H(.3&EWA)67,Z42O!MLP:&Y>VFDZI>ZD2
M)[O;7Z+1S(9J!%TPUPYGV,+;A9$+^NN++MAJBY#O4?3J.^@\#&A-A8UWAQSD
MO\+M#E6CUUOR:MI^VTXFWXA5&9E*\;;CH<EV04= %MAS+ZD, [P5.^DH(**#
M(->T<HS0"_3=K-1;X-+6P-+J2W(6G1V<FZ&7FS>+Z=F5E#<93FT(R5-'6F_9
M3#D!8JPQP*H/A(0;0,K>3[M>*N>9JMX$V:>")^!'J.JJ4&/1U9Q7#?JA)Z^<
MGCD2EO/1PN3-07ND;3078@.8OK(*8ZR*2;.<&'\@J8Z.[\.=2KL^56:-5UBM
MIE.ZRE+B9$DST'$')K/*C\$L+3"'3E'>X 0R&;PB# I;!O?[+;8X_8#T!;Q
MVR2]S,&S/5PI--0SZSR:3JD]:L)E,>XT%//;C^!D;$-#@)-,HI;7>Q@4N'BD
M7K;PPD-NP@3%>-\@!BZO$:\"O:;-6P5TOG/+B-EFZ+C3I4D/<DN8,CD)"*N1
M&V,BZU=QO"=G:J+FXVL_0!OO'%L,?K**(HR8GKQ%?3S;\-/W,9_,I]O>?;A+
MMFP!>B0?M.PFN?L$^&$ 9#S@IP-B*RPV'@;798F/>$DZ-S3MTFO#<;,3Z%KL
M,973;!A QR%QQP$"H0?86* X&*U8:#KN&*O5?>"RF[IV';^5./4);HN)%.55
M@8T%O@S<\=B&8+C6@&O'AD*_;FA/ZTC!MM]L9Y:IC9C^/, "T[Y(RE2).W(<
M&[K#*X%L-+G.0&"\8O;J.XS<"RS@JS=?6$&_3*,Q4H@'KA0L5"1(6Z'/)S,;
MO!82:#4M0T@!H06_$>HC]SG!H>W?]P%Z^!X^/(7[& ;NPW>\K[Z3=)ZO-'^-
M=[QH9-%T=%.$GI_>&NA9D,1P.IV8O+1LC[0J-X3Y!&U;184Z604D2'P0KQ1-
M#2C-QA>+3]L1=!7I[#2Q0XG.5NSLLGFRF,],IJ8<#5Q4'HO<&&6C$5$<&W$C
ME%N/7/H!/E7XP2,]5G"W#0E]V@$##B<6%;U2!RQU?..SE8L\%.'S%?"R04[A
M)5"(:"A8/_C7SWX<A]$[-9ZR8V#3U;K*" :B&]0GQHUQ:&;/PD"GYJ\)CP%>
MOWUF8P'R7LF%86X<O^3#-;DFM9C(]TGH_$[FA-R+?82_F%L4^:%[_P3QNV5O
M(:;?9=&ACQQ,2DID"K[H8P?59X2?9OI%]7O<B"R*!@T=*VJRGG(NL@-C]9N@
M3MYC[]4%:OL"Q4[DOR15W.3CYFD%.;TFE:P".E? ,N*T5/Y@ 8W'>JO#;/(U
MX'T_'\JP.KW"R.*$>'4WWP/D?H$[LE?<XF_'\5_@3IH'K\BK3SFVFDQ1!RHQ
M,M-N.5Q:H>HZ0*[O^2DQ\:9B:AONIH(XB?9D5EEZ/8E"+^IRV46( K/F^RCE
MZ=1NHAHY64G2N0,]&\(GNF"N)\0P+A"9SSS(L*2!G&1ZP@^10ZE3YPF!EC5<
MC8Q=MLRG8V0R<D(9H%!:[ @@8S8FLSVQ8L6J&$7T=R)354RO\331!+IT4! 1
MIVEN<\^Q01,IPJR*T_H-18X?$]O>[RFE1.8W6KFN3PL-\"Q/149=<==MIG&(
MOE;A8G5WEF-GX!J4I*YX:]Z^C*PG/]]I?"D;>@SAWAM(Z#1[/'@@:TZ,(A&S
M?-W1PK.A7$$#O*K@4'+ Z,%OC,-,F5*J.+_ &+G%?-)"+-"7]P-)FK! +U 9
M^'BS3^($!BZ6^)N]</%._1#Z=J$W'0YU+?X+\S,E,$ID-P<]S[1V+W0@/P-;
M].@'M&5;Z &&U[3ZZ4NX^G[KVDVTC_D%6F,-]C*S6A0E'><3'0@4'U8,G03;
M=U"D2Y\(Z"//4I4?XQ^*7RY[L.EXRV/?Y,^8,(FO N8)X&4G]/JDC_/%2E[4
M*;]9SF-88-1\,48VM.CI?8+5+Y@RR&YQ3-WK%<S'.#NG<CV'[4=AAV)W-!KT
M;BJIYV$<.PW1V=ZXP=-YD8]^0=;<4?<MRS9D91P!O5>K(GM<#/P ,$P?\UA)
M$^%98<Y,O_>Q17(>PQ3-P)LN>O=0M="7?<^SKE!MJ"/0HQ3U_X(_DD5J^'.S
M(7FIS[GUK//S!W]TK6_0E;%8>O.!K@@DYIQ;![WJ_(9Y2EV)B%0F:G8B?@Q1
M^A7YCT\D#_$51? 19382O3KL6<!DCV;!B-OQ8K'\P_JPU>=?%<>,$T#&"E#I
M^A:$17']DGN^MRQ*ZH/;+2V%U\SZ?23[YH-H QL:1>F>KSXO>ZY24CSY:1E0
M1-:[W^-6[M ^%,<I$5BD/$[_8ELID-,]GGY4R\5BH:W5SE&:I*^)M[0ESD#C
MO<#'4 "Y]\^D#F@)X@.I@4ZO]Z2:H!4"ML,NYPO'B@ I@W-OK0].=)TDB!(]
MP:O(/#X=/G0S$#1%KAIZM7D,K.;G,X^.-\-R;CJ:UNC,.WS@#=<;__LL>[1G
M!PV=@:[B4;H=JNJS/\JOM:;_M<2IQ=["5>!BQ.Y#2&^_HWC]][V?O+/_E]2T
M4F76V>:LS73*_<Y4.*D8>(Z'IB8S'8[!7+LA8.'JZ2#@(03I,("-D/V'C-2+
MX71'/M3_A:+P-O2#Y!Z]HF 32 HBR>DUF20JH'/[04;,+NP];P&-=^94AUF5
M(<H)_FGP>3[4)2+RFFL-#.:$1%)O34K-OF%OL#3J VJ+4RPG_51;*T-;DSV9
M_$M53FH,1N1$ %L@)Q7JU&4V6LQU73\JRHD4IU!.%@-=<M)&G]08S,F)LCZI
M4*=5I=S!S$8Y$>$4RTF/^@3O@139AA:9;) 1/K%.^9#!+<L&CY+U._#FL]'
M"KEHQBB0B>'GX:A_F;CQ,2YY_4XYO0G)$(#F"T>%F+E@IZ,I,EZ)4QVF4$26
MDDJ;QXK()9XIA49^4+!"A/0Z1:0!=%E$!,3TW0^AZT$[3%4EF (1F7R>]&B!
M4-N90B.P[OVW!A$1TNL4D0;091$1$+-\K@4:S>PX]"K!%(C(_/-@]M$]SKK#
M<I>+Z5#;!J)0&;CG658EA]&04-R"7QC$-,W(AFB%;?.;V+;VIM^A9^@'M!0+
MZVJYA[L'%#V/9&NB&XGFN 4S+[KV?>N%P3+Q%VCH6I,@8O(%U*H/I3=(^952
M/@XH# 2N?0^1Q)"_(AB50R)MT"!'9=S0FS/2":;7ZB"<YU@4M=3U)9TVKZOR
M$'8'.G07R)HOM[_IB3?M F,6D_S'^>8,9"8H/_U#?I^ZHSD4'\U";>:#H?M'
M*/?3:=+"( Y^)L%9NP_?1NF\"0.&F]WI'PK_]GP8;/%<5AEM-!]Y>J.,^LN?
MZSSY_RYEX3I(I8&U^1#;ST?YP#_TGM-ELGWDPV$<G]+HK31&JP"E;2VZCR7-
MA>H(FN2X\$36- 3.1\/>"[!KJ"738<I_L+(RK<1,ZVO_X'N.^:_T0]=#;#=-
M SM, <8?9F>QRTX:+-W!0E>;CW[3+3I/_:.7M/ECY:%[PP%TO ]T==O7_$^?
MCFZSD'[$+.DA' YGO8<QGM!$[_$5])$L;;>\UNKV&9#85AA8+=GM<C"WJ:2S
MT9=P^@Q@.TZB/4FOX;6SZK3Z1U40?X@20%TGWNF,&Q]5<M7Z F-T%@_X 9(\
M[0J-OL^4"Z[X#94(6-0^'#HS70<,F91+H-5BM@@I(+3]I4G_"B-Z4I'F1G.(
M-,6&"^'E >$U"N:Z6HR'4UU7O<(H\ 9LU?7^)S#X/)OTNLS25#,.D>9E%J>6
MU2C8W<%X/$+&6\$W8.,M<T\9J#D2>?(8ETSW4DM2Q3@T+#L/C0<3DTI<#1UO
MP9>2;(X3+#A--6E>\!*9Y@7G0*PM>(&&J4JTF"!KU+@077W!AY]GBUX7G"8T
M-R]XB4SS@G,@UA:\0,,\2P/\"1G/ 6U$5U_PT>=AOPO^H/)]/QC[NFOPZLJ\
M].VXT!TYUGS9 FSU99Y\'O2[<Z]W:IJ\3*?[R^: K'_:NXJZG*#YP&@K045X
M]56??5Y**D'T[8_Z[YO.-9@A.-&E)%1O!4V^!XU97?\[OJ)[D,%TN5B._PB)
MR)TG+HVN.'1@^=)4K-)&*32?+#=Q'#C052E20Z)[PRP%#5QIPDRVG7]T$;(Y
MGVL\GXZWN@IZZ14W];D?D];5RXGA*WQ_^(YGEOZ_O-*<A%C3V:$1;GZ $%+2
M!9G-EL.!KMA%X2E"$6-5:# ;("L)?F/41][R*4H&GK:Z9!2(#4E&#:Y0,G)*
M=I4[FVVGQNL.*F(42,9$03+ZW-!DK:IOT'?Z)W[4O1(G2UQRG)%KTW;2 7IU
M^?!&]!P&("9#L9([P*<C&EE&AH;.ZQ>XVW,-B"H-\WRY<#;6U3-=86GD(*6+
M\$KH>W75,9'Y]A(&MWCJ3]C8H"*S\0JH91XH-7[-KKTVDZJY_%28LV1YSQXW
M?WO8@FKW20A>TA%(^H!3D,>/=3ZYA'Y$/[@5?C7/Y3#ATQ])&I_&ZIXY"[30
MY3[N\Q32<KJ"TV\:G&I[3.K1$J;MK5L59_J1/LP/7;5)?8I]9$*2IP/Z>%!X
M_IEEL: " YGBIG^K))*X[0QMV3@:/\FNDU0X!8D'2?N:#\<C*[ZBX^!7OQ J
MW=0.)]80,\M#.H)A@;Y 'HHBH:[XU4^>K@+7?_7=/=Q]A6_^\_ZY<C$W%+S"
MTPRM3^Q/^2J*7\(IQF51==/E!.HZDLH^CM//J'Y^/5S9)IC<M-H_[9[Z@IP$
MN;^$.SS,SD_>[V"BR<CC/_G#6GNR%]FCV<=[++NGF\]&<Y.'>6,3KG[ !UH0
M8>(_XO=[010<"ES=7V_YN1_\V^6]Q-Z_W.)#F=TVV;I&[TL,39=39XIR #=E
M >\^VEF?[=OFI=SY\>^7$4)7 ;8K4)SH^GKYS_V@7Z_L)?;V]?(>FMXD#I'1
MYIZ&IEOKEX(Y@(=9@)_R6+/W=HD4E:DTV;FSSP=^@/85RJ_M)&'-C4]C9J+G
M+D?6E"35,$_AQKHC\<?'GV@%][&T E(.=>/=HHA.AW?E)Z;5=,_:!#:_4Q41
MLLLAZ R')D6K!<2J5% NX)5\@R\H8E$31JY);Z/4M4-]G"SN8[5/GL+(_P??
MSROG8!6]2#EX764U%*XKVT"N+EG.RYRX9^Q*(P8'?FO6C7FO5=>,43,#PQO,
M9]#N]>+!Y3@1\>B)3X*C#^MV7UJWJX;0I".4\?G^>4^<(*^H *0REX24ARH%
M)A6U2ML1-"GN;A/+U7D[=E9 8.O.'./-+H\!WDXVZ2CL-M0:=5+(6U'5*046
M%@P\AU.;DH%:8>ZB74[6-*Q1Q60^'FQZE"8EEV,QEW95TC0!COH0L; =?+3P
MEB8ORSJ!K0E9SI^[Y"Q0"+<PVD0%5<>SW-MQLMS.P0!-=.4SM%8/:M!;:0D\
M9).2[^ZBB:.DX)[!_SJX9O __O;@)SM\4#G<TW*JFTGH^M</C2")E F)6)&*
MV71NM >F(KRJT% 6@/<-<!O&/@VD^HUPF8Y^ND,[(OY8;)/W!WQVC:%#W2?B
MNGA2#GW.- 7@19TE(6<GCL5R-+6A3J0RT)JKF#$"R@D*K"<1-(&ULGY#SI[L
M9:O'"+'*D2149+WSXQC^.U:FLL)[+9@UV2ZMIY.;,,J<K%W9>#X8&D_FZHB9
M$[+-A@&'<<"/;!3P[Y\!'>A/_1C+X?.SGR0(G3]!/WI!41Q*JLO(J'49QXV
M#T:QD)0MQ]:=3XPGF:B"Y"4S43Y08.PG733Z!6O"1"87-1)=J:%\:(>$T/+?
MV=EU.9UXO=<Z;TP#E2&K)7]&GT%*;OK>$NY@Y*-X%;B_PD<D[$]5(]-X1RB
M6+K9J]"P\^9D,M=6-4-Z'R=%5Q4.<F^.S>* 1(7&A/.]%RUPX<=.A(@UA)_P
M)0SVU;474FG2!6* N3JHDS!_I#-!4)=K7Z@1FL#5:CNQ)7>+;&!+^$SK"%F^
M]!V*D\@GM[Z4C%XC_QR%L5"3=!S,>&*(XG25<^2%(S%7BSN=.28WM5/.H7XN
MR]A*22+@L:FUT1'J;N6ZU,< =Q70:3\EWA?<S*-)%:J"SQ5C$T.:5[\=S$TZ
MCCI K2G-G!M$?4K5T4HT#;.Y#*.O,( L#.<2B8(RA=3ZU& #X)+WFT_*G#.#
MF3-R+%!D2B"KXG45X+V8)G*F!IF'3$<:KI]?=N$[0JESZ]J'6Y*!@,W+\WT4
MD4BN@)3Q<]@_!"^C[2#ZQ*[;](K2V&X$NO[.=.PB&UR=QV#G.A3BF,3PF>XM
MXSC1GD8:XA>P>X!OK615F5MC/YIV$RIUJE%C98F#H^E66SE<F5AV ET+*F/<
M +. S#-_'L:R4HY''6\CY&!BK.)5A$V11]O15PU\X2 L9V 1FD.T]$QNQ1V@
M5H4HXP:$O1?!N8<[%&,1Q^)*2CGRIE CT206 FBY%%3^SJY?EP@9K370C*RZ
MQI088&J0DINVN-X2%+A8_46ANW>2M(K4.U6*<'<N-[34>#7:5VTF4S*K5!C9
M%<=@,5K84-ZB ^3:^9+M?%G9X7?P8Q F" PG1][>'2V4F^0)12FZ;F> 5B/H
M$] .$RN*:0MV5N_7@PC:T">P,_!:;3HR$("IX*(WD@"$]2D)M$GYP>XPOI%
MN_HT\?PH[L*O)-:SG)'M+I.9JRU=4B',K@/R6L!4F,"=D?62*]+VNP4[N#K3
M[5C7E_?"O-8)C!+9*K6!7;NWR[L<U#:-$QQS>K9B.KT/>^R6CB)H0[*F(LQ:
M-;J,#Z2,!VE+64W'4?(GQ*Z/,K_J!6+_%?EL6PVAT3?>86KE<'%U?J9TML[4
M&5@@K=V1UW,,PU>?>"?!)3[.Y\*[9O:*UFV.'5%1DNSHK<#&R]"<[Z#_7 \[
M$).R*7N3[:SW\\^2+5: 'JFG6'CR5L1:.X3G?&#C%78RRMJ/XZ5Q =3FI<\=
M<S*),9[!HX"O7@Y5)B%FVAGT8B0LG:4ST]5SFMFIZX#[07<!70M-IGEZ?!/5
MDBJ=#_!M%<<HB4G6$"M=L=N%WTGC,,$+4>+47V-382*\$IH2-KJV\_$4C6RJ
MD*D,N"J,-R@!;I8NEL W .DPM$X$*ZT,LX%ZV7*^W2M,X0+%3N336!*>ZFP_
MAJ;MJ>OD\DVK[0!LK1TX&AEO^GH<]-JETX&0%"_Y]OG^LQZQ/5JEGA,9(45F
M"2I2.>O+^Q<4.$_/,/I=DM#6S*9/F:I.H=SK1L[#?/[3R=BQP?/;#BTG]_;
M#6AUM)R[SSRWA^_A^3[&/Z(H%B>2\*@TZ3\QP%S#U4FRMN]H:S)Q0 E<S3W\
M/00Y@_F(GW ?)/$=<I#_2NYPN2+23*XUID<*N7(-P:5E ?[+[6!L0^BV&DK.
MC2?E @>V?KL79C)[[<=)O)%EQXHHM97QD $ME.[@D;&V(I/A7-M14JA85 #6
M+A4#E"N7?L7A#KVB8(]JF^(MBL@OX",W)$>%2Y.8J$\@%YEFEK0W[7#FF?0"
M=P);S_Z@_(!CN!R&Z"<'I*806TI9RP%T98=TF=8A5:0--XN6'X[<F4G#^5C<
M"B:TBB3V'01S%3A8W0J#7-B?V68^F;N>KGU%(=A!B(\?J\(H#9NL605J!H8"
M$\R.2ZG/4)4 +<H(AXS%9R^' RNN$AL!UI-QTGK?5LC+_7X;H[_OL9)8X_TL
M><"/DGA4A-0:\UKE@$N)JWQ2=K. )@O/BCKT*B!KUYHY$Z!<@+ !PF>7.$F/
MRP):8Z(D/BAS"9FSU9V,D<FC4 N(C4+4ZX'H)@RRM+ L^T%\1)80:[)&&^'F
MEJ>0DD4F+!S'?#5<18RUBZTP^(12/N!F.2NG$9-.A1#/GWSD7?H!#!P?[C:>
MYSN(+T:-U'J*(BH SDHC2DC9211NQ]"DQ=,*9.UP<KGI5[^L_[[WD_>L$WI>
ML$Q2I$[.H*LPG0KL0S$Z&34S&18NMCQ-ZYL6.&N1'9059+R'TG,]NV]IT_NT
M3,A>E#+'H])88(X/L%18KDS"OLGA%,Z,^]N:P/'ROL,@K8&1A&"+@-]?_?_U
MFX/B^"HHH)3[T!H8M)6U5(!=*&4IH6:VXFSHS8PW:&F!LV;34G'Q X#H&#WN
M--=^@#;>>81</TG;YJZ>B2MO]0K]'9'ORS B.:"8Z# /L;+L.I[6?>JX25>V
ML6Z#I:T:IL.A\7#3TTV#7T63[GI8]<5HMP-.01\:#\?)IW$3WL*(UQ.E@59G
MX(T$;#G:AD/($E=F"V=DPR%? :)T&WV!:?,JTUZBKKT7V1=W%<1)M*?EB*F_
M]>$)!AO6YHU6V\);!TOE$/E*M#W^ [0,[?A*3](YM.6SV=8_@;.M#7$I9F9=
MNX:^_Q;W6G&P6.B$MPF6_VZ@LDS-NBC^D55P]- (&O?!B6$)J\-X1U>',:>J
MZ?_]@N(D+[8I[0%[LD=\ )4K>34G4:N<\5DA;W?A0AN2A?N;6?532FD!2TCJ
M1T$>PNHW7OJ\M 8HS(J ?@O\A*\]U9EUJ=:VTSGH755.9K&ZSA@9/\)UQ"P2
M,_<PG*: F\*+X[@,2320DY :'8<.'@_H+?FRXW9KD]/_C6_0'KTX;NA0.PBF
MZ3N5E\OU)38!_;><A%:,@8?^)0FF EM"]MF")<K"O](28;?ASG?>Q2LD)[=G
M@1IQ_AN+P@5KEGI;7XKB+Z[Q3_B7V:_P_Y&6W__V_P-02P,$%     @ TH-N
M6Z YTDI150  H*$$ !4   !T;VUZ+3(P,C4P.3,P7W!R92YX;6SMO5MSX[B6
M+O@^$?,?-#4/TQTQ6<7[94?W.:&TY2R=<5K>LIRUZ[P@0!*TV263WB3EM/>O
M'X 2=2,!@A0E@)F].[HRT\8"\:V%R\+"NOS'_WQ_68[>4)I%2?R?OZB_*K^,
M4.PG010__><OJ^P3S/PH^F64Y3 .X#*)T7_^\H&R7_[G__@__X__^+\^??K'
MY_GMZ#KQ5R\HSD=7*8(Y"D;?H_QY1'[U%68Y2C]]VK3^MO[.WT;:K_JOBK/]
M^6>88:HD+FCP+]7M;ZYQ?Z,D'/FDYX)457]3C=\T13.WC1Z2,/\.4S2"J?\<
MY<C/5RE<C@*414_Q" ]\M ;TM]'X__%'U\\P?8&O*7J!,0$U&K_EOV[[NDI>
M/]+HZ3D?_9O_[R/RF='TT]UD,?J\RJ(89=GH(5FNR%"R_W<TC?U?1^/E<C0G
M%-EHCC*4OJ%@T]TRBO_Z&_F/A_&-,*/C[&_O6?2?OSSG^>O??OOM^_?OOW[7
M?TW2)XQ'47_[Q]?;!_\9C^M3%!.&^^B7DHKT4D>GNJ[[6_';LFFEY;N7+LMO
MZ+^5P\'-L^AO6?&YV\0OF,M!-J*V(/_Z5#;[1'[T2=4^Z>JO[UGP"^;&:+3F
M1YHLT1R%(_+GXWRZ_6:>O/SK5S]Y^8W\XK>K!,])/,:"Y#E%X7_^0AI\(@)1
M7%TAO?[?!XWRCU<\-[/HY76)P?W6X8MQ@&(\#_%?LF09!60F?X9+(H:'9X3R
MK'DXO#V<?ZSW>#G$^3/*(Q\N3Q]X;7=G0?&0X_^2S22;A;-7E!83,WN,X2K
M*SOH!(6SS[/C>< [#WI.E@'>!B?_7$7Y1W^X./H^.[XKF#W?+)/O/8J+WN6I
M:*9Q%F%F+5)(CH9QFL*G]4>;QMQ(>.K(KE'FI]$KF:2SL#QVFD;%)#IU1 ^K
MEQ>8?N!9A@_4*,2;0)R/?3]9Q3EFP3T6G!^AQB&VZ^5D^=Y]F]PM9O/IY*%1
MHM6FIW[]&XJ#)+U&KTD6-4^I^M:GCN$^3?!FEW^,XX#L"*]DDC:-A$5S^HK#
M.LU3Y"W1.,LXSE-:^U/'<3L9/S1/BL-6)^^=RV2%-[F7UQ69ZP]82XQ\A#>]
M/(5^HU"XB'O8W;$VE1-V7R.O>4SUS4_>:2K'6..N0J4XG2,O+U%>;.UX.1!^
M8^[CRQ''5L=!VH.\"OF3#XR?4L1W>+&I3AT3WLW3%0HF[Z_D4"??F&&E,;U:
MI41]O(V@%RVCG(-_K3OJ:>1_0'R<Q\V3CM+\]!T2_Q4MX'LSAVJ:GCRC5AG^
M >9R@O5^,DV(,M$XH5A$)^\&Z(G,SSD^&%.R@AKW DK[4\<QP83)!\(M<]P]
M!GB5HH#C7&^B.UTO\S+TSQ7N>_+&L_II[2^C'_:K)_:M+_)]=0'Q@=<3@L.^
M3M\[B$B3E'N05()SZ)U\0VJF[%L'Y645B^ID?13!C%=H=6U[UOSX!L(DZE\+
MY%QW#707TV_XAMNQNYYUG59CK2>ZS-Y[C7(8+7O:?(\ZNR@"M5<(JA ,6J\8
M-"$8]%XQZ$(P&+UB,(1@N".;2AZ]H5ZQ5'KM4</BW(KH%/W:%]ORD8_Z''H@
M)^,X2,\X.FX^MNFC;\V5>PHRR<XTJL83KHGN3.-J/+6:Z,XT+NX9QTO?SYV$
M<X[5-NYU!(WSJ;YUKV-HG#OUK7L=0Z/&4M^ZUS$T:ASUK7L= _=Z85.=]56G
M[5 [==;SW9]SP;.ISC,F?C[RD?=OH^"]GS81GFUDS??.1LJSC:WY/ME(>;:Q
M-=\3&RG/-C;^NQ-W#^=YF>RPC%OT<C'+'N<B[]I?S[:]=J.E4/7XJME>W6TD
M/<NK9^O)VJ:3<[U&MAUTVW[Z?JUL;_WAHZ>/\S5%&:8LI'.+?W! @-XQ&X*=
M@R$9,X]W<A[EI*&R_I\Z^K3SA_\T*EJ.[N$3&DWC,$E?UN_CQ9C*42T3_V @
M2^*.G1QY/Y-Q9'@@A=-UAOQ?GY*WWP(4%9[PY"\%KPH^X7^ XKMC+SMP$5I"
M#RV+_@%N<]3DM[./:8(G6?XQ1T\1^6:<W\$75#^T^I:'(]R7Y3CU1TF*3S8L
MAK)'F/H'$JQZK&]:_/9:.#=_\I^CY5;X89J\T#BUX4O2,-Q]]N%/78[#5\4.
MM)SBR?S^_Z$/%HLK3;EXK KC,07:19E<KNX%[K&>MX<MN%BJ"6!I'9"+<G*,
MOQZ0$=PLX5,]*X^:</%2%\#+6B@79>9&M;R),A\N_T0PG<0!B9ZB;/[4UEPL
M-@2PN F@@)WVX04NE\?.]G7[[%%#+AZ;PG;96E@BV/N,EDMB$8,Q\Q0[;,?%
M7$L<<VM ">#M!-]6GJ+XZ4N:?,^?.9A,(>#BMBV,VTR8(G2S]2:V]5 EL4XK
MYM9!H^!BO"-.4V,"%:*PW:,T2@+FL4AIRL5K5Z *5PM-P/2^B98HO<)C>$I2
MYFYRU)#OVB'N;E>+2\@D7JL_:WG?X)]1]@Y&<SY>B[CC-6(4R'&B<'+S>Z\Q
M'[=%7O\H^$0<CLG+2Q(_Y(G_5_%:D<U6>9%X8B^4H_:(9-+Q24#$I9$?M:"M
M_&[UXNT,G;1]O&S%QV@15T<:(@%L)2\:*=:)"KX4D>Y7Q'TQQ=,@8%I#&PCY
MF"_N3LF%6X \%O!]&I#G#^)-2L;6/.>I)'PR$'?U;, J@/OC(,!<RC9_W$8Q
M4EF<KVW.QW5Q5U &1G$<O\)_G:6+Y'O,P>_]QGS<%G?OI.(3Q^MBMYNE]VGR
M%JUS.C4QO$+!QW41-U >I.)8?Y]@36KYOZ/7IM.UOCW?TXVX:RD+Y64?'\A@
M4@3I;#YLP<=8$7?0.B07925)QK:\?TYBIO9=;<7'4A$731JBB[+U ?FK%,M6
MU;P%<=BH9VNU%1];1=P>:8@NRM9-%JR'CQ<O6=;S]*@)'T-%W!)KL0B9I)-W
M_QG&3XCN(5/?DH^W(BZ!+&1"K'I_7\$T1^GR8_U"P;;J51KS,5K$3:\!GQA/
MF13&642XP\/L:FL^;HNXX34A%&)@PF+'HXW>T#7,X>8=CFU9JJ?@8[NXJQX;
M:87U__%;!0>^C/]U%O=0[D2P:]]1554P@T:?1MO4E\1U='9W/;E[F%R3OSW,
M;J?7XP7^Q^?Q[?CN:C)Z^'TR63R<ZDD:PLPK!+3*/CU!^+J>6FB99^5/=G-L
M\P.P'>0LO(EB#"K"ZEVRGOX,E],-.0\U< W+0=[IB^8D>$6."PX@13N@N# @
M-W#VJJG,S7[73A<>'ZXN-KCM2ZPB6#;$C#;%?ZU[CCN&L&T+?%=1+4TR&1UR
MF"V-*I2M$4*X2*Z6,".)B,E#UO@]XI',,0D(+=U7&A59B05$1;1=.9H@.>V/
M[#IY@5&=Y7?3N-H6!*;I$".Z5)*A<KM62 Q4PJ7S@$B2D,_WN#>$U9B@&.17
M1#$ E7R@$P$[T#PDR7'$8'S]:N+ M9-8Y0GHDA(;=Y%8+1& (;)M20ZG;A)C
MX]I)K +R,A);9\QHUE /VP%H6ZHAB5P8BD"M7"A0=G$\XN2PN:[QBN.H.3!"
M1PL;7W]EE@H-T2XB2(B: +-G\O\D1/P-+O$ LSG"(XQ\?(<EOQC'P>$/]EHR
M-(I3N@6NJT)B:!BBL/M!O@MM$K)BUSG6\,!]A(>&U>$[E-,M2^4T9U !75=,
MHZ)L#4.D7,!VD5(=)%8-?B8_ 64^N0\Z[TF[XV; 5W33&=H1QD2RBY$2L1[*
MS'D'&SE](=0V![;M0QT.3"A<B'8Q5B*$@Y705QB5J3<:A5/;' 1:Z*L5 ,,0
M#AO1+B1+N.['J?.!T,7W\HHU>!C"J$>R"\]Z+:],MVLF4$=9##%/<K@L6HI:
M6^N$E_=+DGEU+^LE/@!92XQ.!71'\95PF,+E K8+#Q,AL2+M$._-MZ8Q4'P=
MAI(8DMK*AX5G+ZA,A%R.$WGB&3-Y]Y<KXH'R)4F"[]&RSI]F0\Y##6#@.;YL
M)EM.R;4"N!>S)F2)K4M*QD]%LLFB%.PL?,S6(V<L-A89"'7/= 8J/#YD>[%O
M@C?&1G6DVA;HE@FK>\= Y$.'LQ<.)U@H7-( :JC9P4#-@'4X]J+DAJ49-@EM
M@S.T GMPEHAZ"'LQ=<,2U5[V2:RS%D\U!WE!F_5$WAY 8)B6*MM[/J>X6X/<
M"_ 3+%;NMQ4Z#5 ]3PLJQ\#@1$>#M1<7*-*B?@\_B/V8VY9^V!XXIJH$%1/S
M,(34 &DOE+#=]OJ&4B_)D,BS<)U.]W #*4[[FLJEM;)N)@?(UP-OH':3=@CW
MPAO%&/O7DV^.WE"\:EZJ]>V!XZB*/5!-M0'27B"D^/MW.8,8;V2UU]1C.GRL
M>[HZT$=G3FA[@99R:"QM-!5@*:I=M?D,0T ,.'NAFH.]5]PEL=]!!ZV2 5=W
M=6V@;S]\R/9B2"7:/7<#;KV![DB!Z^FA.M W;GYT>T&K0ERV=@5O;I/X:8'2
ME[LD1Z5BS7#*8A,"S;1==Z"/X+S8]H)BI=DS6^Z50,-JF#M0386-:"^2=K!G
M(9<T0:BYEC709]8Z''M1N<.2'$G'%^5%L2%\*255B/ 1@&*?*4D&$? "U7 &
M^E+$@VLO$%A,_%E[^S7#F*N%-G*#84J+ U8I+$&VE,, D6]PN6*H)S6-@6_9
M%AJH59J%I_3O%A4<N,M!VB"4XY8D+BAH3NDDIT2H8$IQB(J0"8(B5ALN[V$4
M3.,K^!KA4Y%A,JXG (85VK"2?&(8PFG"5,JHM9U$_ /!G%0NBU$P@6F,#]1L
M[/NKE]62I(FX1F'D1XRSJYD6**9OV .]=;> 5TX 08:3ZFG;1N' BK+M>P-5
M^!EP2J$,SH&EZ;F_NS<$,'U_L'84;G"EX'MPAY$I4\]]P=1GE$?^[@#>3]NC
M=DG;,_JW@W[__0=-XV/"T(*"K*(=T_C8JAKXLETP>'A,V:AKP0T]C0_>L1S9
MWH0..<R61A7*CY7&QW8#Z,MVX+41$!71=N6(BALY,8V/9ZDPE.VI@,KM^DL[
M'95PZ?2>QB<,#*V:+T6:I# EX^M7$P>NG<1^E#0^FFLA63S<NTF,C6LG,4&!
M.]?(RZ<QUGZ*S*N/,7PA%0;_A8+K*"L\2EFN>0VDP%,]:,JF6E35A5KI\:,3
MF_]GS^J*;T&SM, 9% ;8>Y06-;"X[,\T8F"INF=4'O2'(<0V^ 1G"CJN6S9>
MY<])2B8<E_B.B8 :6($OL46,4VQ47&)S^%1&.,VR52M1K0F &UJ:(9MRWU5,
M1YA.2MK3OXC8]0]IF/:H '1=0^8T2ZV$50=,;"*@0TVI_6G&1P^0X:F^)#IE
M6RFVA"@\=]#>8/F/-38=L*&ARNR@QR\_*C2Q:87J!METOM%I0&"92B"Q$U!;
M>1W!VF4?DD567 == R&P-,\/!JKV\V([*9D0):O@U?J!G931B-ZB ,4!WI5]
M%,/\J>[H(C0L$JSOXO^3[0FE20[<J"IY@P2_5FX19K-P$[* ?XMO_ZL@RG?=
MED^6FJ'R5AIY6. _OD[N%@^CV<UH=C^9CQ=3W&#T;X]WX\?K*6XCY.&2E!)^
M05L S6^5% )@65IH"_*$W(12,IY7RA9 5QVH2!+GUL3*VLVM@D2T_2G+9^%F
M4*Q[U5XS@'1;T23QJ>HDA'HX8DU(7](DR^[3)&0YO.TU HYEV;(H9IVD4 =F
M9Q<:EL<4F5'$*6B3:)0COR"- AB!J<N2QJGSZF(B$VM9(C,.95GA37N#6*?.
M<4L +=>H^D$+>L]JXC)%MZ9 $IY$.D5^M&9A'(S7KS7%/UDO6%0BH&L!]"6Y
M_W23% \ZL0:B![3$W3UM8+%>B/?;X:U>0[8D-O-NHJ$ $FOVF6/^8>RDA,(U
M5FR629%\MU$X3#+@.;KF2&*LZR8K/GQBK4"WZ*GI*-HV 9:CA+)X+743216+
MV+307U",4K@DFVSP$L41P4 ,'XUKIX$0V(IG6)(X4'03%2]"P0FDM^DI2G1T
MF56: J3B_B3)&]=-2G1,>]F@AW6?VD):WT!N\4V10Z:[QL!U==^4Q$9QHE1K
M4.WEBQZ87$EBN[LD3@[!;3C#F96_D1[@SZK&H'?>ED!ER%6]'F&#[-:- #)=
M7Y'D$M"2U71Q'6';RU\MJ*H"POS,UZ/:[B:LIX%: A!XJJ5)$CC=AZR:<.XE
MLQ8IMT;U\Z@AT(Q L20Q"/<IIV-\>[FE.0\_=WWXQ?CBD6_:RGC\=3WV@"U1
M>L[>=M-FN'MYJX>E!>TTNAO,OG4JH16&N7NS_HS")$7K=@OXCK+).^8;!AS%
M,/TH'N])BC!,B0$M"PZM%TO3R^]9/@K"(-!D">#O9^LY/Z\Z)_668_9BT!N6
M?D8Q8KY:4@A X.B:+\G-N[]90\<I.'GW'<IY;M,'S8#J*5"60(1.KY'U</;2
M= ]K\96Y8$IGX>8K,XT"&*IK.I*\9G82;2,RP3F]C\?W&6:1SR^HHCG6>@T%
M2N)!V,AP+C$=XMI+\2V#C*ZCY2IGN4I3"(!GF9XN20V*?N1TC$QP<NX_$"F>
MAX+Q&SZAG]#=BH3BSL**?W##*FO5#? M"$U)5E^G/;(;7,%9O"F#WDS(%F[R
M+3L"JJ9:EB2FKC[%W0BXDOI;(D_N8M0'B;:H'MV&8W7SZ'[X?3R?_#Z[O9[,
M'T:3OS].%W^*=NW>RWC4+:\O!SE0;%,/*A/^P@#;9:5R75N'DKSMM&-R[8JE
MH!MX6BK/MD)'DN=7"H?9TJA"D2<MU7IZ724OKTE,MDC.U%1U9$ W5%N7Y"&N
MDZ"8J+:K2%0]KJ/1-66IJFT. L.'MB1**!_?Z^\73'"GBHH2T%>;QB>C)C4B
M-"P2X"+-"279V-@,/90!-["=',2GQ&G*/55I"CS#<UU)_+[;B*<1T$XL@@PE
ME!3D32)BD@'#4!U?$A-D!W'Q@=N)KG58DWSIV9OD7=\>J*[B(DG4C Z";D"U
MD["H!+]<61X.$B XBF-XDBP]AM9=K_S5 =D%TK9;8Z_X5$R(P2'-!:ZS$S/H
MNU"U%4G.O=;2I,/9A>0*D"E%HYR]%@X DW>4^E%6&M4HNF1]8X!"1U-DLV$T
MB8L#STEIW3CY/7ZA)+:L&]^Z,5!#TY2X"@@_OX_PB(VD+1;N>A>^7J7X7+Q?
M+[N]W?DF2?&MXRWR63$9[?H!FNTC7Y*7MDY[77NH8J-S*8,NDI:=+N;Z;H#B
M.8$CB<;8DY0;D(J-YAT'_[7*UN4-%PGE8E-,4P\6;S4OQ,6ID,,<X4,[BW*T
M0;0&.T=^\A07O32443OWEX%FV#*796-.I8LQ1VST<B??- \IEE<9\##D6H]D
M%X<\-#M!AQNHKOJ**6\F3_X;: ED%\;<Y;8RB45&)IQX_X1^B.RA76B:X>S%
M-?<A4HF<*JY@]GRS3+[3L^/9BM+-E^)J_/#[Z.9V]H?P['A[S_-;O*T\)RI4
MP#4TU:@$65WLD"0#ND\3DI$Q^/SQB 4\C;<1;&,_C][6Y>D:0;;O"SB&CPS9
M]FN6C&@';U?@8E/UK3.EL?6C71L $;1424P>)_"\5H8U,,4F[SO0THF*'?O1
M$AWH>(NDM[5[CJ\!-_2@)XF30=_SY:P,$UO*HO_,:9;J!)($_)Q5;K4SA8<S
M.Z/KT"YI6[;<(IBA.7$5GH688^,L0_D^UN: Y)8]@0 JCBS;R^6G56=VB37\
M[H]L6W<U?BHRFC".)P85<,+ E:6F[.7G 1=K!&=UW(1H'1H3&TPZE?8 :;XE
M2]G3R\NY@2EB;:W$:D6*>I=51N/@#YBF$'-G[U5BEEXM8<3R^F[5#3!]S:LZ
M3O\L\Z$;KT37)L'@2:9@/,3K9.7EX6HY]HOBB>P;*)4*8 ;INB3A59>?!%RL
M$9L*<QJ_888DZ<?M]&9&4J>F;V@2ALC/9_&:+YA!C"V!AQRHKF:9DCS'"=@*
M6O'HM,2:%(^:\7*9?"^VH_@!+E$V1_DJC6DN3)36P/5,WY3$@?""8N1AR5[:
M34$)6E)RS[A&ZS_W8&Y>C+GJQ'#V 33D*S_S>F[-J+WLG9)-C^(^RF&!Y.X"
MV(IKVY(DI>L@JK8BIZ 7G)ZS.N!2[\!+!$5O[/A;'FH #3WP)+GOM9</IY@9
MN/>2?0XM*6$59ZFC1"QW/B89<(CCHB2YO<XV'^H [V4/'?Y$N$_1*XP"CE2D
M;$I@&+HK2[[?LTT'"N8!YRNM8KQ&KTD6Y46ZO#6WVLR**C6 BJ_)DKOT;#.#
M@;M]$E.)9T<!\&J5$EZWGQU5:J#[AF%(XN)YMMG!P-T^2:C,LV/["A9!+UIR
M>CNTZP<@+;!"22+ASC=C>#@@.-TH77V^AQ]=;QP;4F#8OAI(XF_:43PM[QS'
MR#MG,!7OAE +,EWA\>_8U7)R'%$#T];<JIOF#SH_:. %IS^M4X/6\[2QWG C
M*?!MQ;?DW^9[$# -^5[BU.%O (<.,B77&#$(W%V0%(=^(/\%HX>9TL0!P0E<
M^;TZ^W!;![IA.++$V/<I]PXLV$OG.JQLYQ2LQ.Z6]13QP.@+6($.92ETWWO$
M P_P2EK8"[N@P(\R\M7_YRHB]39R&#]%6 ]NLBXTD@(5JIHKB7!/$%&]JPDW
M^E+" S1.5D!B]N%-,/^X7\(X)Q7W\$^+<K\MI@FU#V!XCBE+ILRSSY=F-I03
M9X!V2W[N]7&: !/9^-+^8TZ<#FPH)\[@ZAY1L&Z]N'M01AA] <.Q[5"VM#=]
M*2,\P,N)(\B>B8?L(Q24%<'P+3HGY^DU\ECG"YT(!*&AR/(F>H)8Z@\4#MQE
MX)R@U,S[0RR\LH]S;?%)M9846![R34G<'\XI6S;Z4L*"#)#\P/O8J(&M:XXB
M]SG?6>8=V% *?W UR@E0\O]$YWV#2U0X?&$F13Y66\DOL#Y\^(.]ENLL2\?V
MGLF[OUR1@BOX+\_X(H;F^/Q<>WW3I]YEQP$4&)C:X/4+04PK)WOK#,^#GNQG
MFKO TTTU^+FGXI8'Y<QJ;;N5(Z^QE//+-SS5^LGG5\F#<G[Q^ZO*E+5L]?JZ
M++@'ER7WIG&8I"]K*3;G>N+K@*1X<Q1)LF)TGS%MT99S0U H>EDRFR2[;(@[
M/&@(/-4,3$F\/]KRG/+66P^P%)"HK)U)[&-(.VM?'&QO!$7B/0Y#&&\7P-5=
M7YHEV(=0VT,OQ=TM(IP2#8J'02!LHM"WAGX2Y+*$61:%$0K(57\;N+I(;J)W
M%&P\&%]H >&D\U[Z!IH/;22)Y-L+[5#V_7.EG!1;!ETNR^0TSB+\\44*R?5H
MG)*2HR_[BMM^+DEU]&ET'67^,LE6*<+_V%"/-N2C??K>9C=UB(RMB1 VT@$M
M")#1P\F8(?_7I^3M-^0'FSW7#W9;+?Y'%<,MHR8C)J"W!Z[IZ%X/"26:!SU?
M+9&J>*:*OS\.DE>L@MXL85VM7MR:TAC8FJLJHK,%\7'T<)ES8.HO8V$[82S2
MESCGE,6N+; T.U!%6S=[$$4-I/XR^#5+ N_]K58&O3TP55,17F.UHT0X8/57
MVZ2U5)J6"+4Y, )D.0-=)<VHCK/174[3N$:9GT:OZ[QIGU<91I,=:QFD,F^1
ML?I R[B>/%S-I_>+Z>R.)*?^_/@PO9L\/(A(1SU+GV"\R?ZVR\N]SC1YO\>H
M;68XN-RE[&Z^2O72/=X4'5A-T'<9!I6"W9,V'OMGF$79+-R'L,!3YS,>PU]T
M;K3O"\!00;+$K/<KS-K[YPD<ZEIKKR[TX'*;R,/JY06F'[/P(7J*\2W+)[YM
MZ_ J4J,'L]C?>PLN=Q6W;E=Y>/SZ=3S_D^PH#],O=].;Z=7X;C$:7UW-'N\6
MT[LOH_O9[?1J.A&RT51!<225IM( 0].,ZOW[0A9>EJ@XM@$^>J":=@@EB3/F
MD$2]=;<=U&&NX>G=M\G=8C8G*^MPH>I&W4+=;R\RH=YN4#P1SU0B8%DH#(79
MXROCXEB!+"K@NM"1)[Z_F>T4ZSP'PF$NMV^X89)NTE<<'XVV[=2L.+S>KF=S
MK'??SQZF"R&K;O*.I889CC6C] /K-(_Q*EO!)>>3! \U<"S-,"I)[TZQ5!ZR
MFK6P2'-*:SQ1H2N+%T\K1E;-Y$T0A[FBRLB*NOB4_755,9??SV?WD_GBS]'X
M[GHT^?OC])Y47!*QO*C!(<UKJY$4F*KKBHI8IXZNU8'7IA=@FPX4;C!J+9S:
M8[ 3[F$N8EH<XOX"UJJJZ&)\]V7Z^78R&C\\3,0<C5^2)/@>+9=8/L<@VJBH
MK;H!CAF:U>20%W,BH0R/2W=M) :NCJ LU66[B86BU/)#'^8BOIV,'RJW2,?0
M:G3:35,!T[=(Y<"AM!ZV YZMZ*+R/*R',@MO$9XXJ-5Z:R0%@6N9GB19'2@\
MKUU._,B&N9BNELFJ*':R(E:GC6O+51(?3-O]-5;1;Z]N9X^DKNC7^\?"@/HP
MF7^;7DU(I='%?'PE1-.=1]E?67%S\;%F Z.8+[J3209LP[:47J^.3.;S+4#2
M3]MN@.5!#4KBF,7'\^HMLS/H@:[3^LC5_95945SQ"OR&;YZ%YGH]^=QE)=(F
M[N%H&GRR**V!IKJ&*RB*E RDU1%'(<"Z5! HHLMI\'"Y]GAK0C7,Q5*4\:HM
MBKZ_7O3*X^#OX_GD]]GM]63^4%AJ%G^*J7Y]7-><I_8UC08HNFM[@@PSU6'=
M)7D[U9*["Z"%MHXDB<OGD$?]6V!KM,?%K2]Y)+V\1.N:+?C\)D<O/HA17/,6
M7RPWHWH\??TZ7:S+SQ/;*%$8L0(YN1/U_,X U,;&TJH;@#Q=#[MIE9<!S+%&
MV_4#H*T;IFCOX).$5;MV.W)AF$=LJ6D3J..G%-7&#Q3KWJQ12XN+X7K5C[_,
M)Y-B$^A5/:T97+.6RB "&E(4IYM3:ZM1-E[VV%3 " U'>-K4%ORLN=EQ(ASF
MPMGD?=X4&R$8]\L(U&32WE]+UO%:&E]=S1\GUZ/)/^XG=P^3]9*:+7Z?S$=7
MC_,Y7E:CV^GX\_1VNA#GTW:4Y[J$W*J:0*MN@!GZ%JP$DE[4B:],_,XU\)U,
M-_. X]#M]SO UPRS6N=,F"==!V'7'LIGXM*@]YY-#>/:2[%-VV'^&,_GXSLQ
M-^)#*T7S9E'?'MB*'D!!CROW:1*L_+QD?5O'A 9:$"#'\B5Y7FG@/LT'@1?B
M,)?>NH[I KY7#G;7-6O]7_'U>#):C/\AR@%V,]YV#K!4(@ -V_4$'<DUX^)R
M(J!3 =?R@E"2)Q0>ME-\!3@0#G.]7:TR_ .L5R>QC\A]@G18M_*J[YF/#PN\
M].;DGGHU(5=5$H/VP[QB*HKK5>ML7<K>M"<,,LR65J9F:H ,2[-$/\>T$@3%
MEM0"ZS!7Z -Z(A?[.7I-4F(IJUN<E2?-A\D78BL:S2?WLSFQ%@MYH#D:.<?S
M#(4"N(&A>X+JB1\/JMVS3#,Q\)30D"4XJU$"]<\Q+5 .<Q5.7EZ7R0="<X1)
MBJ!5/.YJR$BQ&BL/II.O][>S/R<3O!P7>%624.VK^>2Z6_0(Q4I*&V"#-;>)
M#.C(=X-N^FC+D?([\K3H 6B>IPMW7VW%Z:JEMPO>82ZSAY67H7^N<%>3MYJ'
MDF)Y51Y('QX_/TS^_DC.N\FWCB\D/:1J/!PY3V[&>@J@( BU'I(8]0&#YXBC
MD0#?"P-IZDLU<;O^8&O$-M1UQI,J@)(RH%B%E>=*_I0!HW\K._[W'R%[@(T<
M5(EPN@R4FF06^!YU:DZ!4WH%N@<=),_[2)/4:E=]+PPX=CBZN EAEU.E&.0'
MG^F 2@5"SS&KE?*&)5DN@/UEKNOV A(EZ3I3_RYAIK_F;_!?JZSPG-G+:<-Z
M#VG7$W#,0)>EPD=7"7<&W5^6O"Y2?\S0+)QD>?0"<U:]EL-V($"A84KRGM55
M8A1(_>7'ZR*/&QBEW^!RA;XB2!0<,FO6^P7W9LK=!0FYL+V![ZSMT1YGV[OP
M ;DN('!<(87[I.0A!Z%FJ[XD%Z#.1V8KI!NA\I=;E:9H.SXM$$;G+1'_+*#3
M ,_57$.2'/U=1<\!;R-O_BJITLA[F]6(6]HT"F"8NE=-EC,L63>"VTA:D%V*
MFGR#6WJ\/0#?#NQ0DN>8[EIP2[ ;Z0K*@KB.&E_'D',+E$$$W,!VPX$?O#SX
M2B-#M^A0R@/-D2]HLT (%9L(.*IK:I51#D0@+?"5 NG%'GSQK'*%^?C(QW"-
ME+X,F63 "H,@'+@:Q(>PE+P@L]'61ZV%.E-/ 7S/#HVAKE5><*6X!-E[)C"-
M,2A2DK.(PN:66@,A<#1DNP.WX?%B+&4HR$8T1UAE7B%\2TJ>XJB5H;V1%!@*
MA%4_X&')D1]E*4E!QJ!BEGW&BE:1*07%V3KW?)DS?EHX&49OB*C36=.!V*$S
MH(>^ P=N 3P%=RG_ =J-*BZH:^<<\K<6/KH[(F#9)D0#7_D\^$J9=RON2+F[
MW";QTQ)/LDTQ.3SIUK6MQSZ^ :>HDC:0[W)S8J\ JKXJ2Q1$I]M/7PPH92[(
MBC0.BM0_&1[Y59*U,/<W$.+KGP']BN8_$ &WQ%C*4)"M:(YYBOE!WB2NL7ZQ
M3 J[UB9.O.ELYB &MJ$JYE 7:P><I;N#H QCQ[[C+5]9N<B!9JEA,/!W\G9(
M2ZEV\S^BG*Y?DF)S('$Z''<=0L*@ (&O!MI0-TU><*4<!)F%[M#W/6AI$N._
M^NM,(2T76MN>@(5,*Y"D5$/7-=<9="GVK7E)-M_>1?&L6^?96TF>TL:S=]WM
MC^#7:WJ6Y56F[RF[YX/_C(+5$LW"\7*9?(=X)MTDZ?IF=)M@O7DME*8MM6TW
M(-0#VY+_>;ID>'6?[8Q8K _N;MC'!DWB8.P3W2Q:KG(4-(J]U "Z=0@,P]/-
MH4Z GK"+=>K=F\$8>T!&BF_3#\A?I44JG<D[N5"CX :S:YVL>5/]\AALJUG2
MU[> Z?N!(;_ZS#F!>F>+6-=A?%;#IZ<4/6W&N[&Z\VXJ7.0@--S %ITN[\09
MT [IL?_Q)7/@K%VQF%I:)0'57B5(H6I8[R4A7=NUA"5FWFX:VQ&6N<Y:G]GL
M'@#2;:A(4IV91QP-FRPG6G%IF>L*U=&7F\-7KD[HRCMKW3K7\4U34)@C=72G
MN'WNF\Q,WY+$4,$OB-KUUP*MN)5W_%A$7W5N8XTYH0M.2+$YUW'50)2M?KN]
MWT1QE*-;\B18*\Y6)R-W9\!635N1Y"+236P-QV9[5LABXYCBU1_V.2M:=0@4
MU3*0) G-SC(SNK%##K-'PIK7-ZN<L..%O&K]JY#4YIVR[93IXRO UO7 EZ0Z
MRAGF4:\\.K9[7+"V91$5054<5$J%2Z':0L=2EZJF^9:@A+ SK$Q"8F@YH>8E
M?Q\ >CH*)3$R4:10N[@Z0!1[:A?C)$X^O%LLA0#XMFE6@X_DEU@3GI..S<;G
MOR*1_C0.D_1E[2")EI"\7"1[VQK_*V"KWH 2:J8G27P E\3Z 'N2@9XFSM7K
MZ[)P!8!+$AQ_LTR^GRK3$[H$KNL%OB0*,+]@^T L-E/(>J\_/ +*(AD?7V%.
MGI<^^/?9UIT!PW=L62J2M-N#NV,]SATBK, L706M)DP_*C-[BC)ZUGJSCNJ;
MNB"-LXZ]?(G+Z&0 AK;OB+[3\7"\=IWP81-GSJU6D:4OBFJB\FHM6:&7M)Z+
MR@9(189PTUPQP'4@5C9/ELN;)/T.TPYN1UP= >08FBU) @T.V338W=IA%FR-
MK0W!&Y-X]:="R_K\L6MR#S^*AR6"9H/O&\JPND7>C=Y?D5]H7N1'LU6>Y3 N
M G[([U#J1UF!GW<&"1T7\'7'E>6!K_.$E(.%<MB3-ZNR4@!ZDYHAFZ7SZ.F9
M+WMUURZ!%2#%DR1.J*=MK@/ZLURMMZ/:?I\V33]_W*>1C^9D%;2TFYS0-W!L
MTW8E"5UI+?O^V2#.5XZ[3"Q=)ZV4ZVA7+%9TS,/EJ\8Z$)F6(&?7/2_>HXJE
M<5!%T5[#;=\K"'75K^KX0Z@(6PJRX6@X@2?B;J5'-5SIR[]23N2XDJO0!=Y3
M25?=,7R[D@_OTDOV*('6UMC7?IGR]00,Z(26:,,/GV0:UF!+P *M05S1A]<H
MA]&R=CV>5%ADT^^/$']H>Z:F"#IE]\/LKI.5EX>K97D*[)(";Y0L!KHVW0#+
M<?0!I)TKY5*[8+LA/LEHU)#$$Y_6-U&,AX2Q[$9P$#Y)N2FUZ $8>!L;0+[5
M>MEU!;NSA0PM9Q4;;7V0;>,FUJHW8#J.$LBC-7=;[:< WQE..&>/NYX],8E?
MV[25^70X]5@ KA=82)* J/.>!UNHXNPHK=0VM4YO.REMQ*;CD?HC:&ZZKVM&
MMZQV/>1[R=>I;]E;]D$SH!H*].77O$J^UJZT>D1=JS/F*!5[0&]+566+9!P$
M1?)4N+R'43"-K^!KE,/EVM9+7H.2&#><A4>. HRYVT/O0-4-O>J7/*Q)TRLC
MSN$S.HWQ3"3/=/'15_%TIZCM+!*@:*JG2_)FU5IHW.C.\2:%^R<[RSC/T\A;
MY879)<&SXB6)]QU@*$+AI 8:4E5#$E^^3O)I"U2L[V9M*IG"7+[39#AT@5;=
M -,PW6J5@('(^"3$8BN^_8'($S8*QGC;@$_H;O7BH10KO&3\V33+5B@H8-#E
MS-L#4'S?"P<NXM9@AUOZC0)UDU!JC7CO>;SU!*%U!$RH60.H#]AEGC1B'F[E
MN(.KQO@-7UP/CKD]=XQU:K+&\Z-CAP"Z4%$E\6OKY=[6 ;O8LG3%F"KE2M+D
MAD2PT 7.) ,*5)RJ?\6PQ,J'4&S5N<T6U5Y\#83 \KQP /D6F0+DQ5BI0">I
MS5*KLUE6DJAUL5EJ/X+-4M5]:(G**H.G MJFWV+%6>RW YYA:Z'\+T@E9^L=
M/.HA;1>5:(G@Y8FF^*\,4W*U+7!<554E<;NA<)@MC2J4;9$$X2*Y6L(LV_AK
MC]\C'LD<DP#--#THB8;124!41-N5T[$DZND!C'LCNTY>8!33!51M"TS/5QU)
M;H3-W*X5$@/5J=+A"GO% R;6IZ^(7$0I]E@&!5"LP% ER9# X&75]LH#:B>!
M7KV-]H/DF(RO-@2*%VJV)+7O6O&;@67'YGY3B) OE@$;S7P^; ETW86A)+M^
M>T93P.PXW>MSSWUIDRJ^S>9U;5M@6)J/ALAM-IP=OP6]V73R< AMU_,E$09#
MRVRVD&V1#-6SX8*O,%9H:+HDYM&V0F\-LJLSJJ3SX?QO+W9@ZIXD3D\]S8Y&
MK*U]3B69)&<QLY,3T)(DVV#;"<"';.=<,;0GMK.9YD,-V88DEXVV0N?%MG.S
M&)K83ZS,,WXA1EB&_;N/[H$?(#V0Q+FC[13JEP,[CP^IGWYVAJJ]IY]*08\N
M3S_ZC_#TXS@NK-Z-I'[Z0:IM#\"-M>0LS]-/"6GH3S^AXLA2])7"8>ZGGPT4
MX4\_&^O-Q@"V2<7#?OJADF#=T%"DLX1P"*@9T7;EB*ID7CM$SC>@.B*@:HKG
MR/42P> _O]B.X D77*]OJP[$2K@D;@F==D JHJV<]&&^K:J*CY#T;ZLEMWG?
M5DM4PJ7S\)RD^0*E+T666ORAAA54UQQH.M*@) 6>6JT>)IJM;$Q99-.T?"@$
M(- <1Y=E=V/RG$],1[!.%=09GL<-%%B.)!HU8_OA>AXOL>S8W*L7 M?+^-$[
M,D3X?Y(D*^91EJI\I@#:\5A0LM:C $VJ4$KP=<V!87JHFHM>DOWF:/.H/[&9
ML'9"ZM5[8=_,=[KUM,B/T[U'@'04VK+(D'[/KZZL/D /)!.;46<CK91?[6(C
M-7X$&ZD9F!H25/VXHXU4AZZE2V+HX> LCXVTA#1P&ZFEJJBZWTMQQRDYS&LC
M+:$(MY%NQ_9YE>'19=D#>BKR>G":<>K(0 A#SY#$_M9)4$Q4XLUNZU$U7D7W
MFP'5MBQ/-@,!D\_U(JH%)5PD:T?#!7P?KW*L[9(J /"EP9!#I\%W$5^#DMQ=
MVRP@#DA;4553EHH45=-B8E$!WU:1)8EG X<(6HCN"."IPJ.:>5 *OT99?C\O
MLC4WF'KJ&@,W4'1'%N6@=I.JL_0PH>RXW6_,"4K?(I^DHU^D>'Q8N63SF](<
M!+JN04FBM;DYW@1FQ_-> U V:<CQ=S<CF*,W%*]00WP$BPBH?N#9LOAA<O*?
M$])."KV:=XHD:#%<)ZMCLKZF)8 J5&1QB^?:K:OL9\':\;Q;@ J%YU]0\I3"
MU^?(GZ,G_%TFV^L; T?S+%D*XW7D? .R'?.[)?FB,/\QCHA?.]'@V,;]:D,
M'<OW)'GU[<AT!JH=PROQ]A>ZQ,$ERH@QO*C?N]D&&9>YNN; T377ET3Q9%@Y
MZF]R3$1=P[3J?+$E-1W?D?<G8B*O,2%K2A\FY.T7?@13LJ9KFE\Y?J4V)1L>
MLD))'G X.,MC2BXA#=R4[&NNH\FB.]=SF->47$(YCRDY2_,]<>!_[42!_P&^
MPO]*TJM5AK=!E-)LQKAAM1VP+$6U9+D^\HB #>,\)L@&]A,M:!8>C(IJR,+M
MJ<V!9=AJ*#KS$)O!%6$THQ%N%IZ\DPUW%67/9'+-PJ)X/=,H3*, FJ&'P0!W
MK$9 P@W"=2/D<?5CTP'+LZ$OR?[6* 1NT=4 %"[ ]>UP=S22CQ#V<KR^U!+A
M>TMHRQ(_T&:M\6#:2DM4UD+*(/D>8"ADP#%<59;84AXIM!'?$43A NPUZD/Q
MK$ 6TUXG19R*:"LG>YA1'[YGNL)50FYNUPJ)@4H6Z?03G*B&ONX.4#EL1K25
MDR.3G$X)3D3(-DU)GI&:^<\OMB-XP@5WOX1QLQ/.?BN@X1-6D20\OLTRJ@51
M"D"8B:X<5=-B.6P'=%VS DF$4,M8I@B.0)PJA(LD;G4U1ZTFEI4F4JH\LJOO
M>SR@=A*0)G&KYIJ&(LFS0"M^,[#LV-RKWTR7R#0/:BJ21''E.2FK?*8 VO&X
M5Z^868R^H3A(4C:7CYN!0'554W2=82X[<)7#5# ['@M*TUI6.;Z''^3@;XK^
MJVT. @_J2!)S"*<5L?949:/;R>KR*=LH:VGQ/>%92\?-@!MJJBOZ".ZXEJA@
M=O(1Y&-SE61XPA6.)LU1M$=-L<;M*)XDEBD^RV#]78T*;">>;C6WFS* CPMU
M@2\#^'Y;8&MF*$L9E%;Z$1O.CM_=BJY1^+VNLXQG" 83O2%R$<&G&Y/M+!*@
M^';H27;_.KI553G/A6@G $&%TUK6[*/O5BT[ HKG^KHD^@##A:5V ^N*M4\/
MPHM/DRN8/=^GR5L4H.#SQV.&2%WUA+AOK; R-7M%:2$U=AY_WDZ HVF*+ 4N
M.DR/UCA/JCA_NE:"ASN. _('V;;>\-%,0A\QC#3]P /^!I<L3V N<H!/"=.0
MQ'N[K4C;(3Q'T?HY<:"-MRFC\35D];):8A3!-0HC/Z)E^VBD [YAV-K0Y-(.
MVDFEZ:D"\9.G./H7PU%^/<C#9L#V-3V4-VTYB]T4)"?5@J<9,\GM  MXE<;9
M>+E,OD.L2%VO4N(LC-(H"2CL;J0#9H 471(GJ%;\YX=VG,R[GT U+'3<^(-L
M=06;YIACZ1MMWE/; PN:4!=MI.LB@&9(PRV$?KT9+@EHRC*49_@OY<\F[Z\H
M)O$P!=@,GX-XJTU7<)EMK,(?Y:_H*D(__0/-"YQPH+>&GED@MEKZ."B>N3*\
M^6S&SC (5]H"0U>1(<F-OJT<&7#$%D&?Y<\H)?,$PR?:ZC4^IY?)*X'6**-F
M6J!:FCSY^UK*K 6\2A7T2[LR)OY?ZZI@^V?[NA#4'?I>_(KIU\A##]3 -ZV!
MWJ];0MS:V,0(] ;AS\/E-7I-LBB?QMDJ)8K;59*^)FLKP'V*7J+52^,:;=L3
MT%7="H>F:9T*MA1WKX_^5TEAQUU_>!YE?^$I1WX GVCZ+X,"(.@@6;Q;6FG
M/*!*_O=J_:A\>!JWE\ ^#0@"QZDZ+0Q1!K6P2BGT:O*X3W+RF &7RX_K2N4I
MVGL:BP;8H:F8DKRKM9("'ZQ2"MU,(ST\-F_?(UI4WV11 4-U'$N6I/%MC;@\
MP$J16<.[PU?P;5*3_ O56<MH3-D1 =W4/8G+:K83=@VN4M:]V&LNE]*CM$/M
M\G9L>;"7KD,]3M<QO?LVN5O,YOOY.(1DX=C:T7;#:T[#P2 "OJ.ZKJ \'-MQ
MW41QE#VCX$N2!,P@S[KVP P-QY'D$8:'U;5KK@';<?YT08*:P^]?\5Z2XL.;
M1T[[S8&AF+XM21CNZ6*JA2;V)9IJ8^<1584&X$T=6I)$-ITN+SJ^UM7 W?51
M$J,G\EXJ4&G9@KM#/+L_;@4"U_>]'T:H^XCZK/)].7UD[6J[L=1PI1+3CG43
MK)E<S^:CZ\G][&&ZD"9?V.0=2Q(+)8IA^C&.@\=XE:W@LE _FU46'FJ\@D,K
M[.;MVL.CWUIDK&>[=0N@&1!:DES46_&5\A1W!$M<:9?[-'E%:4YP$,^BXDF"
MH=7KQROG?CZ[G\P7?X[&=]>CR=\?I_=?L98O5L$O,1&?UWP?6/.::20%JFL8
M9D53OI M?Y7&$0GIPR.[B=Z+X+XO:9(Q5A"5!"A.H&F2.*+PL[W>6-\(\B3=
MG^%F7@R2*H/2#WNO%;#P\6-*XG_5E>TL7&+U]_N5MXS\QSQ:%I90*L!OZ#GR
MERRMOFU/0'5L7Y?DB#IQ/77&?I+G:0]NQ*]1#I?$QK:NJX;2AR3,OV..->R2
M393 #:$JBS_XB<+EQGJ2U^K)PBQR(),PANG+:YJ\(>9&NR&BTP 'V2@8^+;+
MC_(DE]@^RG5B'"N?<'4:8[1/F,U-LF,0 4=1'%E<?TY=?1PP3_*?/9_VW"!
M-AVP+:R*2>)T<.KQR(=TYXTK*&I^%XZ V>Q'ZP!9]+I$!;?C8/R2I'GTKXTW
M"P43PZ^RIR\ 3<,BE,2K]L2IT3M/Q+K94L=7.#0R3::-I"#43467I/[>N7:$
M"MAC%UTI+#U,8ZG1TN0CV&9Z5N./[KM*-0WNQ:REV_V$:3'=M@*:9=9D<Y1U
MA97,I9E,J[C.8=79WYYGX0+%>+A[BO8V\HEB[N$E!X'FV<' 9=,)\+&!Z)*.
M*SF,GTANM'4 #,/.;5:]5Q;CNR_3S[>3T?CA8;(0[,-"/!N^1\LE%E8%50NO
MEE;= *2X%A047-*QW@P,G4 6!\]NS*[=#2DH!UZ"QG0#*&DU\Y+#;&E4H0BO
M9DY<H7)TB[6QRJ3[_+'.:D7R^;!3PK;HA+B$6+HDYUH;(7;!*+R:"F/0NR'S
M9)QMV1' =U.]ZE8N1LI=)-=V"C"9('P:D"*FRR7R\Q5<EKI<4WHW.@U0'114
M*Y=()URF3&H%S(%Y)TM1\7ITP$U/_0V40#6AJTFB##'.S+9K\Q"<6"]?QC#W
M3(/[=Z9.\J3T!6PO<*"\$9==)=P$5ZS/ 6/@3 LIFPX$)!NR)"[Y/<IR']JQ
MNX!P4X!:9PNP^&T!(_7GL09H"'JB2L5,L9C#W1Q;I#! +S#]B^FE3R$!R-9#
M65)#=Q,!1=EI BPZ(*:R,4S>_>6*A$.6;&"JKXW4(# 5*#R']#DDVP+[[FP<
MDD\_97_6ZO9GN\7^K/T\^[.C*GJU&(%PE>AF53CJ[JEQFPP:S?A/Z16$IF78
MDJA3W0395M/BYXF\=Z;JX._P+K+XCI9OZ&L2Y\_=[L,<_0+#=O50$O>$RTR8
M-ER1]LI5 ^)/!-/%]Z2OF;+I#JAF:,MB3A$V08Z9(=8#O,/8\9=9.:^Z=0A<
M73%D":X1.S<.V"'6I;S]Z&^2%<.$WJT_@ *DF/\]-XZX(=9EO</@H]K<P]V9
M@=L"W54\62H,BYT:^]P0ZP_?;O#C,$=IW_/CH%/@.+IO_^R*:3U+3G*YIS@$
MTL=5;]TG1$P:8+F*:OU 5U%^Q#MO]A_ &,7TFG9:&*7$.DP+,4[YEE>3R.A"
MD3$''JO'@Z4C9-,!75=]5Y*WUV["J-V6.5&+RV!1A$.R?'G=XZ5X.QD_B$Y"
MMQYU\[(Z; <\$^F6(*/+IFQ4_%2,J:C;.PL?L_5,H"-@D@%/-RPH248S"J]K
MEP4?JN%67+N-H+<)_^>8I-7&P+ U31;S:1O!LK"(-7H>3KERG!]7JS1EQFFR
MZ8 !0[WJU2^_H#AAM4Y-)\T2I "\2V*_H\AWI,"RD.9+$E+?@]1KD/69S$X*
MP;<6-U T/9 ER7P/0M[BV=D*AW2-/%!4ZSS-=*5!4Q7D7M915U4LU_4%/00=
MSJ#F\D-US8'FHZ#J!B[%\BEYR[%\CM%(<E.K<^71*TG#CQ> &/^=C@M 53S+
MZ;6R^:%D_T#DVH&",=[7X!,ISDA"(,K?+E#Z0C%/MNT&!+;E6)(XTE&87#5)
M=D8IUAWF%N$K)#H</%D3R2K.YS!G[&)-E "&AF54C.,2B[$M,'&QY0=[FUZW
MMU62#A_O;?J0]C;/"+505*'!@XDPC2-2".<Z2I&?7R5965%OAA<Z90^L/2>;
M^@&6CVQ;3G6@E :'.L -4Q(]P:A;2Y4TQ,=KR1C26@J1K^F"'!_JMM;MA>L>
M?A3)!:]7+=PNN_8(#,-6;4D>4"@2XCZ=6@&63]^H&WZC%V7+CH +':1)\@Q^
M#GD?X^PS$D/B*<)VJ&S=%5!A$*B2^$2=;9H<(!VNR;H-9K9O9=N>@ <A\N5\
M2.QMFAP ':Y]NQ5DIAM=VYX <EQDR?GLT=\LV0?:IZE<SEER^NP >$%YGISF
MK5YFQ1:@6$]:YG ?XV!CT4'!Y-W'3<<OY%\=Q4OK#@1!H,E2DJTW63>B%9N+
M>E-RH!CSS%M&3P6?LT;/!38=L"W?5N1T,6&*DA.6V-3/9_(V";T@5 9XZ>.$
MM4OOW.ZXS5$JH\M!/[XFCJ5")*?AM(O,:Y!MLX:=+G=!9E:6,[M>20%^;&X5
MZ\'>T>QJNVI-L-4IS[/$?EY\A/+NNOT]\!S/07+>5DNV5!]4J\,7:[D<IPC.
MPEL8,^K+[]H W_1#1T[-KY[G= @R.:)F<PQWFRZ ^Z X(@/0UDU9RJ>UD0X?
MJI/"XBF[S5?X'KVL7J:QGVX_?8]2G_#KB;8%L8GP>*$;5C1.B:70 I/8X/,_
MDO0O?-B3DFMX<A2L+%T8-F.EKYQF6J#:ENU+$E3>9OFT@"8V0KPTI]PDZ7V:
M^ @%V0T&OBYXP*H*L>F CQXX 524 1Y2+>$=&Z(NI_5>+9/5IO AWK0?4/H6
M^>@JB0N,/,IPI33$U>WL\7IT-?MZ_[B8WGT9/4SFWZ97$_R3N\5\?"5-99QY
ME/V5%?6J?93B <5\P3U,,N HGF%6#.JG'&O[T^=(/+-PCGP4O9%L[K1ZN[SD
M0+7"0!9W'CX>5T^^UF#%*NSW*7J%45"&\,=!41ZK*>Z6105LS=-<22Y27:38
M!N-)6C^MW%$<DV3HF]U[%I?3!X\D2E'=Q:HH^L.F C!P3%.24ZSKVN+%*+CF
M<9+AI4[BO0G&S1Z0/21+SB3C?/1 =W17ET2]/&&9M41[?&.XH):2Q&\8' FT
MOT9>3H]NURO9J;':\6TR7Q29)JXGGQ<GQ;E3=HVCX3&4"-*<TAJX#K)%^1#O
MC>EAY6%!1_&Z:*>7;VSZ>(+L++W-:E+'#H&C>;HAVB.!1TJ4!74:ZG-4\-L;
MTUV2HPQOX40)HE7/.,)>(0%VJ*F.)(KBJ?RN'G-<T,7:&PFZ:9:MR V2[. 9
MWEG1++S"IW"4C_&5*GY:%T%GFA_;] +40(/"2Q)W7I6=H+;V.G371U6,GL@4
M%/AXB>?J*@XVUHJV558XB(%N>4H@.HZZ\VQH@U"LC92R%W$=NOL$P+9<2Q6=
MTZ*/0[46U;$A5+1:RC275;+S4_73T\QC9]54%=^Q=$%&DXZ53WW5=G31L9X\
M/*U= A0P R]PZD-5FL2/% ZSI5&%(KS Z?@[3(-K/#YV"=.#9D#U\>@E,6>T
M$40]"N'U)[?#:BHS>M00Z"J"LA3EJ.<M6PQ',$X5!.4,^U^K&"V^)XOG9)7!
M.%A\QV ^B)<_M<8G(6N@ KX)D2^)PP6-H=7K*B^J4^MXTA)P^'F"/P/))?NM
M^&)E,$4L%U,R[3H!@8TL3Y):N_R"Z@AR)S=!QH;#?*<W48POT5'\5%RC&1L;
M@PIH@6N8DKQ1,8[R^JV.!YBP-)<<3\A[ZB?^\4N494GZ45RK2@L)QT-R<R?
MUJ&FB;;CMA7R"3C%F@0?\L3_BXP)!=>K%$_(>Y1&2?#PC-F3K5%DQ8S=-Y@B
M'S<ECT4LI?V4?@%T0D<6?:;M2N\)^CD\':]1YJ?1:W[\>3(S*:N710*<0 L<
MV=1_GK7*A4JL#6^*!Y7E!-#L>XR"SW!)MHU[/*'\Z!4NFX+ZN,B!:VIA((E*
MU':=M4,HUNFQ>$B(LSQ=D?%.XQQA%A<IM_:WB(8WET9ZH+E^$(JV57449TN(
M8B-PR^%M_(S(V%E+L=(8.!XR94D;W'[AT?&(C8]=G['KLQ=O!'@W0&GQ,X:B
M0B/!,TT+9''5::V#-*(Z*2B6Y@/'N..,@R JHG-IGG \M,!W-=T2_1[51>%H
M!V\7_7KIAZEBDCPG2_S];/+/591_,%RF*K5Y'GX?SR>_SVZO)_.'T>3OC]/%
MGV*K@Q2Z^ &<9@<D.@TP?0W!;D[:HIZO3,TR34EB^SDXR_.(54(:^",6,CT-
M2N+;2^$P[R-6"47X(]9V;%=+F&6SL)AQ[ <M*@DP/4_Q9-/1V@B(BFB[<E1!
M<MH?6=-;5[4M" PS1+(M'2JW:X7$0"5<.L6@9H5UA/K^LK^E[S<%KNLZLI1>
M93"9;KJK1;.3B2CO%:*8?889"O9#//=\$#]_[)IL@BV*1Z8UG&RVRK,<Q@%6
M.N]6#3+M^U- =W6GZO8CC=I>'E_TJ]19N-'UM>=U;4_.89H+=!8]E2]?<,,\
MF\9KNP[-J;PG(=1\#%A(#V79J"X]*5G\D/A!:F]_SB;O*/6CK#:TCN<EIK8O
MX%J^"T7[JW>=%-WA#M=G_=254$0AKO/&E<OA?-M0S<> J:NJ]9-N0RQ^M$[+
M^\-,2:&J6NC:R)>D>(!X5:WD1M?LOVM5;1+_(-/QJ/93>8X4+PP7F:2L 0#3
M]4)?WM?/2TU=+A[MGD]_R+M'UDK_/=.T[F\0P'&A;?VH%^@S\$F"9^A3$)>@
M1,_05N, CA5ZP8^JR9Z'5>=XA>\!2JF5=YQ^9!@7'@50/,N5V&VX?O*)9-2Q
MCX%D6^2/HI0&(0J#_U9*N7C4.?MW_35+ J^9VNKD;ANW&4&ERGMVG'$""QF"
M?#4[.LY8NF&HTBS<1L[R.,Z4D ;N. -5Y&C2N#35<IC7<::$(MQQ9KUC3_%^
M]XZ"15*\(I1S;3/CF%XT?/3 TBQ9X\69HFL)3W@@.6N\"_S=)I\;/GJ@J[:C
M2B+.EB)J+>8:V&<*4Y\3]>I_HS2Y3Z(X?T!O*)[%[$AH%@G0L,HO2]QS2PY7
MKTM<2,\4M%[S[<;L 4P:X!F&)3QIX1E%4P/UU,!T+ME,R&V#_*N%;(YH@(TL
MS98DVKQGV="@[F33:]AIS<=;KILC&F"[KHXD*31Y#MG40-W)IEM *DLV> <M
MOCTK<H(TRZ6N/3 TS5<E4<O[D0D3YDX>W6)*>>1QAR\*S6E06"0@=#Q'EG)
M_4J%AG0GF%YKDA7?)H6CBX^3O_"=+Q02$+J!XTORI->/8)J0[@33[5V.)9A"
MVR@^3C[\$+TW"X9" E1;1:XD'C#]"*8)Z4XP@FJD#MIC2M=\!4E2ZHMA8CJW
MA?^(&\)2&?4S&;UFGGBM7SWFB*S6(NQW70)C!9>D%J36,%TO.QA@ASX4GJ7Y
ME DMB%^"'>=/]L4MGN2(+?3<>VCE4\#6K<"1Q YRZ3V4S@VQ%7%ZQ"7FB9YS
M , S85 MG_+333XN'HFKY$-]8]^>GGMO[(;2ZHU=^Q'>V)'E6XHH!;[;&[N"
M#!5)8IS@X"S/&WL):>!O[*:NA57#EA0/M26'>=_82RC"W]@WT>A_D.H,<3Y+
MYV2_93^K4TF [KN:.4 !-2,2GOZ@=HB<62KJB(#O69HO2;J*9O[SB^T(WJF"
MH]CW-M_,F!:]PT8@L&W?D>1]B(=U5<,=!=!P\U#<)?%:YUP?KKM4CQ>QWK7X
M.M!@8#CR&O3*\ZS?^T 7!OVD"2SHK-J+9[[H'-[[+K"@$:K2Z-3"9V\=:W:&
MNI\FM'PXNR]4H*5(XD8@P?RE,ZAUSH[_CDF_?&B+%NBZQ(;M\\SFCCQJG?%C
M6.K$CQ:3[CL.<N1-E73:U#X#G[KF$)'D1?SGBV</H.NJDC@ 7WR"=V-5Z[0B
MP]&L^<.PQ<_R5B,!BAWJUL\[S[LQ:Y=AY(>;Z3^*[@UMS[0E<>245?<N>;1+
M1/*#1-[K=5X!:BNO /U'\ I05=\=6,7UT+1]>>[,C9SE\0HH(0W<*\!U$?)E
ML\T=<IC7*Z"$(MPKH-BUB2\_1]WULAGPH!O*DYR"7Q#U*(2'RW?7(G> XN!^
M">,[^-(87'^.KP'=#:4))ZJ7<L_Z.P<OQ,^K/LO1*&[H25J.AF_SI2+:RDD?
M9CD:S5#T0#;)4+G-\N^I0W6J=&AI"LFGN'Q[:EH" R(D2^($!N^J?CTL,#M.
M]YJVHOQ:4Q*12CL0>HYBR^(9?\Z3@NY_567&3DJ])K H/]@4@%]I!Y1 U5Q9
M_)7$2*G*C)V4>DUEL?U@8U1^34O@A[H%?W))U;!C)ZM>4UN4GRS"G[EDM=<2
M>(H:5%?X3R6K.G;L9-5KVHORDT7V$RY9[;4$IH=,1Y(\9()D5<>.G:QZS82Q
M7<J<JVK;#D!?0Z8L+TV"]K\*,W92ZC4MQG9B++FWO_VFP(*Z;_S<9U4M/W;B
M$IDLXV?.3V"8AJ[*FY^@M"S3[5V"^#7PE!P_N-NS[SF^+.IFETE]*0:U=MX?
M_BR6(4.'YJJZ(F]8R7GF9R,WNOK@_U"34>[L'J[K!^;/MK%VY%%7#_RZZ2R!
M#] =T>/SZ&V7&6_/%TAKY0NT[>I'\ GR0E4-*X\G4OL$&:&I!;)8#IHYRWX(
M/80T<)\@%*J>(F<BBI+#;&E4H<CA$W2-Q\?A$U0V V:@V[)X@+011#T*X5E
MML-J<@@X:@ALPY'&R%G/6[88CF (%T2O3C2FK>F.)*E8.NU65$3"G9U.=**Q
M[0"9LETPJ=RN%1(#E7#I/* T0MGG^U*O+P9)?14H^4 G L@Q55E6$H/Q]:N)
M ]>I-61ZDMBXB\1JB8"#' 5*HB!TDQ@;UYDJRWR%'XOO&-'FOXV52ZCM@6OJ
MC@?E$ #MN*^^AC7C.5/9F.,/)ZNT%>.W[8'CND@6XV5WQE?QG%H3IA_#1%&5
M(+A>I5'\M(Z@+"PRV1WZ7OR*J:CQT!-'(>3+XH=(OS=2-+=6$(?[2'>5O+PD
M<0'W&URN&+:=XY; UAQ=&K^XEO*E@A'V4-7@$+*>BX^O27R_2OUGF*%B+L["
M/20-CB(\70!'5TPD6XQ2DU [HQQHKO8;&*7%M!UCL"^'J1_.]8#3^$W@:GJH
MR.+/UW:_/S];^GRFD4)?*& 7OSO*/A*T5AWH70%3\:#$F>6Z:!$<:'=IAT0(
M_'HS/REKX8\H?Y[&0?06!2NX_ K?HY?5RY$#DTJ? WWT#EP/6;Z\:2*8TZ)7
M!NR2]_P 1]@K\G,4?$N6N)MEE'_,,6,O=I;5?1SHOJ9*%[,MYE!C\F>76>>'
MF8;79 6B.! P"?<_#3S?5IRAWJ,OQIU=+IS!3\!YE/UUDR(TC7.$I9Q?< +6
M?1KXIHVJ-6I^P@G(Y,YF E86JN3Q!:R%UJ#(G>^;P$6^-E3;T@78LC4A]VEJ
M*K*C;L<P"_%EI1@GQ:Q$:PY,U] ,25ZL6IF0&A&5;!?TMGCXCK:V18]7^7.2
M1O]B7;K9=,#3#=61-S*'N=8XH96"&V#\01W"M4FAG<#7-$#W#%1]\!NNL(]@
ME8*^O&\_95.]6KVLEH4/,K[!XX_DD;=$1T (&P+:ZPOII5TG0 L-A(:X 7?$
M60I=T'-JW;3<BX1JMTSW"('K*@:2)%U.'VNU#ELIN\LG6&]<L.4U$RL"!V :
M%RF-$&B*K4M<HXIG839B*P4JR"!Y.*I[F,[2O2V#H=+6SEL:/4":KU8C_R67
M9#>(I4#YDV9+$5]4&LRS<1R,G_"EO8A0Y8DQTH]CC*YF=XOY^&KQ,!K?78_&
M7^:3R=?)'?YG/X%&M(VH%@ CA*A8J$PBX.A^& PKK[!N0E\5?0BV8"WE(; 6
MT\"#B#Q?UZH^;%*XY9<<9DNC"D5X$%&9[H0=*K'?"@26HFJ2^'2W$4,M".&!
M*[SY@(_RTFB>%E8]F,4(H9:Q3!$<@3B/$+(TWQ, _M>.^?@?8$&.X%FX>_FF
M+ '<MK8I"#W?=B4)X>):!XU(SI-BMZT<B#_"'"W7Y5:>H]=%,HES$J]-6R%U
MN-B= -U0=21Z#VN41[/X.&$*SYU<C)&\/J3YQR*%<895&,)DYJG#( )8AU%=
MV9S_. XA'DQ;:9ER2:OIB&*2 =-S0E<2QSH>*;01WQ'$4P5(N:%-WI&_(K>^
MW76 K/_),LHR^+_P+;HA=3,W/? 4W] E.=HH.D/5:-0>WDY.O:;2)I[?49XC
M=/4,H_05I5G"3JU()P"^KJK"?2%..'EJ;'O-8'=RZ3=&+_V&5VS>((RC5L#3
MH.-*\KK!M_U4>4[#M&.TJ) $N(1%S&8<_ &?F$%@1RV!9EF6=/44JC?\>HL
M#<PNL*N_:4]LBRDB#('IQ^<D7M5QF;2L-@2:HIO2Q=LW,;D!RR[D2J+@AO6+
MU1QE>1H1_YMU,@'BI?,E3;*NP9'4_H!KF78@[X,">_6<!OFD("S*&AL'051,
MMN71]PL?GUK?"4+71 8,:/BV)(=/J_7'C6P7IB3$^K9VA[M)TJ\PAFMWN1O$
M>J^K)P"&"QU9-.:VZZD)TW%PT.4>U<:^G^)53IP2XZPX+F?Y,TJO5FE:P(,>
MB0S !^GF8:SN><TX?EX;7UW-'R?7H\D_[B=W#Y/U*]ML\?MD/KIZG,\G=XO1
M[73\>7H[74PGNT<W(3G]-@S80UKR8/]'C6G^6G4#-#6P54%^Q9.7UV7R@=!&
MT]T;WD;H>.!W2>RO_T%'W*X?X-FV:DCRM-1-6+4KNR,73M)"^YKS>%?"/%LN
MX'M;V7-V #0W4%U)WE!Z%'I;^"?IP]0[1XI\W!@?([S"6VOM;#)@0F3YDIA]
M^Q!9*]#G4%SQ311E>([@V4)QDRCJT1VV H$%?2A+CJ*>Q$##*%9!G6R4I?LT
M"59^OLDZ\5& ALNKQF.0AQP8CF&YDF1G[?/T:P5>; A\@;"*O=W!UZ(38(8V
M-'Z@G?0$%H@-:><"?Z)J#W0=^G[E,6KPTFX'?A<S/B3'T@W&<O=BW'1-VDWW
MC_%\/K[;RU0OY"Y[C;Q\-[SF2VM]>^!;GEY-^R/#:=SU& :N%2!9U*D&KG<X
M:+?PNF:M>UV;=W.8YD(#X^K K4W/T]A/$<S0-5K_R; ?MN@%:(XF32K0+O.B
M$]AS7$<?4(ZW26+7G(7E:*Z6,*IU0"XN U0"X*L.A)*8BEH)A1-7ZVI%[GJ5
MQNBIL#&)6Z%GVIUM7W$"21R7SK [E_"ZYHM;[\Z3.!"D'^&-)'E!A9F+)]K&
M.E:2IG=7LZ^3T6+\CTE?$38GS^0MIC;Z$H,(!&&@5]V(+J7WK6<3'MDXRU">
MD;BO];I9+I/O,&;EC^0@!I:IJH8D;V\\0JA=I6V GL-+Y/&!8P37*//3J,@4
M0CDXVW8#0A1 60(9V@OO),C'FLX%@Q57&?X!2J\2/#029E9XD7'LGG8E5O'Q
M88&WSSD)6KR:D+C%Q71V)\L^2A(H$9/ (X:9X@'%?,^E3#+@0-^L:N67\A[J
M%-1HF89?35<@R(>1B[FU>R0%U=##&DW;<22QS5$XS)9&%<IYPAH; HF^PO]*
MTG)GR^C17-5VP%(\O9IE26(1L&$(B:<C/OJS\&!4K(@M:G-@&Z'MB5X/; 97
MA-&,1GB@Z<%93S;ASQ^?4>P_O\"TH5!:$R70;*09LB5YXMC!N($)CY^KCK0<
M9V,1M09*$+HPD$4!YQ8(IS@I4(6+\R:*HQS=8K4XF&(FQT\D\=3ZZO#Y8[V+
MD-)7[&79HA, W<!P)'GA;[-"NV#<2M>03[J[(?/$_+?L"!A>J&J22+F+Y-I.
M 2833IT&%#O)XGNRU0F8<635AE@7T Q; LVF65NI6CD8<':<%N<QFJSB/)LC
M'T5O9%=IJH!(HP"&#S5/$F,_]WE6NVX:(>[$UNM;6SE+;J,LSV8-(<GUC8%E
M:#4U4*7;R)C[3W4)-8#=R:-7#\\Y>D/Q"E4FTSU*R0_@$\WILYD06)IO29<"
MI6J.J(JB!;9S&-NK:[.]>%KU 6S3#SW9KF@\DNH&4YQI?1=R@4E(9U<I"B*^
M3(#.L75]\O7^=O;G9#*:3Q:3N\*R?C6?7$_/G0N0!J(A&V 3&7!L+5 $U6PI
MW +7+SP-'K3K1D W7=\1'6#>BJVU>D =I.'6#RU+8:P!%=A8+^*5QL#V/=42
M'?A\NE19T,1M?@\K+T/_7.&N)OA\Y=OTW.--[^'Q\\/D[X\D#G/RK<>\IZ>_
M\QRA:WY(I%$ W?$M2_1S5;LW1-N!JC1&WB:^\CP?EH &_GSH0]-0);FQ4CC,
M^WQ80A&>%?5H?BWPI]BV6 H!0 &^#DKR\-Y*. UX=C7EY9%0DS652@(4W;-T
MT9H>)^=YQ74$3;C BD0LS0OIH!GP;4?793ES6BR?>A3"GYT:B]-EM.IT.T!Q
MP)NQ^!Q?PP>\8]BB\^$QI5R_0,_)"SG2]K9.GVS:EB5;F5'6VFY$<IZ'1QG3
M)RM0<5S1J[!1'LWBXX0I_$6Y0Y9^RT=(NJJ('$=G+0CA&9$[9NFW/.AIDKR/
MU#*6*8(C$,*%<*3E-KWQUC8'8:@XTJ0-;53;>;3](V!G2FI\E\2EQ;),6,-\
MV:6V![JB!IXDB^*L>EGU,:N9*:>F/NZD0UP]1RB\B6(8^Q%<SL(P\A%=NIB"
M00!"6_,\T0?/"8=]16O@ 7MJ(F7:.]P_5WB ]ZO4?\;S;YO7G)WEG44#@E!1
M+$D,4I1SIKIL^"#M9- M5Q,CFWL2;W+.KAA)LJH-@>>:FBI) #_#WEKE. /+
M.?PA)N\^RK)IO/?91O\')@T^0'7+D22]42O.\\$Z1Y*$]2HC8YR%Z[?(K_ ]
M>EF]C%^(!\;X#49+,A-NDI3D2L.-=D-D[D7=N@10-S1+%CVAE0C[0'U2LK\>
MX@VV([I+[F%*JQ:]]52L:0Z@HRJJ:"M!6P%R(1*;$[!1::7IK.N).8VS/%T5
MRFWA-[!XAO&LB$S.BN3<>/-9IV@YP;3;TP@ 5(TP&-H!*HI))V4PY$CD2MGD
M]YL I)H>&IK J"C$9@;L/(&*_WQ#6;ZMC:">82W7? 4@*P@TT=Y5EUZO+$;L
M<@[VN"9WN21FX>:[FRH+L"RS\!A'.77!\M(#VW+=0=Y?VD/<"&JKKM"=YC:_
M(?_Q\%3X'_\_4$L#!!0    ( -*#;EM 1-%/R48! (R,$@ ,    =&]M>E\Q
M,'$N:'1M[+UK=^+(DB[\_?T5>;Q/SU2M);L0=US5/HNR<3<S5>!MJ-Z[]Y=>
M B5&74*B)6$7_>O?B)0$ @D0((E$Y)PSTRX0RDL\$1FWC/CT_WY,=/)*+5LS
MC9__6[XI_#>AQM!4->/EY_]N]N[;[?_^?W?_WZ>Q X_!HX9]J_WX^6KL.-/;
M#Q_>WMYN?@PL_<:T7CX4"W+I@V;HFD'__?GYR]7B<2?Z^>6C'QQ+,>R1:4T4
M!Z:!;ZI<%XK7Q6K@)=<V':Z\"/Y]\V*^[GQ/_;HD^^\9SBP+EC=?O(C-QG^3
M_RW\L%CQ?K(RY%N)S5QN-!H??N"6^._]86M1#Q8+!?G#O[]^Z0W'=*)<:X;M
M*,:0+GX%$_^^>0#\UG\T]&1@VPNE#_CU0+&7;X9OM2W/AV8"WZK.ZJYX#U<^
MN%^N/*I%/EIU']7\1U6J16\T?!'<XUMC-HF>K.I8'YSYE'Z )ZBE#1<_,(T8
MOS&-Z[7?672T<5>J'^#;!>!LLUR4:]NVT'UB@2QS9CC6)F"Y7ZZL>>98&]_>
M^ #?^@_:EG.-ZUE"<:38 _;HXJN5-\,&K/T@>G_@-\7K0BG 'O"^R$%6)VY?
MORC*-/R@]\7*PW2H1F\)?+'RX&BTX4'X8N5!QYS\O7@2_W$S-"?LB4*C5+BZ
M^S2FBGKWR=$<G=[A]W_(A;]N@%D_?7 _^_1_KJ\?S"$ PW#(O445AZID,"<H
M0;XJMD.MZ^N[3Q/J* 1'N:9_S;37GZ_N3<.!7USW8>NNR-#]U\]7#OWA?&"B
MX,/=IP_NV -3G1/;F>O4_?Y:T;47X_;/F>UHH_G'$?SV5BY,'>)H$VH3@[X1
MRYPH!DQ>U5[]7ZJ:/=65.6*=?MSG-1^OB :;B>MY:/\&+]5^W.+$J.7^J:DJ
M-=B?\.J.RR#$4"8X)M5N6P;LT_P>5F<I>MM0Z8__I7-OQ3^<9^2@1Q@'=_RZ
M(,/_=TSW[\8U[#\;6OOQ>BV72H7&U5T!_J<DEXO%VJ</*R-NGD 3**,B=1YU
MY27^P*[<Q\&=VX%IZE0Q1HJ.,C$P)1D0PCZ-/9M[=B@XCYH]5/3?J6*U#/4!
M,'/0CLCRU=WUM5P$GHL] 1^K[@R>X%M3?83/[,-F4+RZ^V?IP,%Q^4<,7;JZ
MPZ\V#/YH*4,\MKW1/6ER>V].)J;1<\SA]R?%ZEH]!QGV-T6?4=B+WEBQUDC1
MM+LC&*;L;O,5F1F:^\6WWL,3>QZFK]*A-@$<_'S5[CRNSK(,H+TI+.CC3RO^
M--TQFC-G;%K:WU2-.;WPU-:VKP+;5RFX_W/L[+HS!S4 5/,BI[>@7_SI59&Z
MA5JE6*BD/;L#-J_&9B<?,+LG4 LHR #U8 S^X;WJCQ[@'9"Q^L:O=#*@UOXX
MK1^$T\17\SF9U<!1(>^/Z]6Q]V&\/6FR"U_%@CO_$RYA%R%V+@'.IG(R\V_;
M]BS;N<.IEO+$/8F8],1+J4\\)<##,5DMU2I)3#ZFN$]Z!97L5A -GJ-74#WU
M"HZ&?RT9^!^&H*-G7]\R^U5=&LS=V^>93N7"H"(W+:NIFE,X=/>S<()#-SP[
MAL12Y=>'[UL3PSE\]-)>5A0.WC&-))</NM]Q$SAV XK;QU^#+KHAP*PU+4?[
MF[DFNZ,^-13#:4^FEOE*T<)JZKKYYOKD(B94OB[4_ F50[HYZ%B;45J"(Z91
M:]1CLMGQ<XW<O)ASA5.EV"@UXNKH;++WL\E,AZF^TGO3>*4P\8%.UZ3$4L5-
M5K7=LI3*)HWVPZH3AHU!83/MNT_HQ[VUF;<81B#,!7R+SKJ?KVQM,M718<L^
M&S-/)B[_VG=]W?RP5>:$6GLG^Z=MSBSV+^89OO6V@,UW"]7\QRES"?G_TE3\
M]TBC%F%3I9%N^?OV_ZYZ?]9_?.=_M/KV*7-P^/\"J6XYZ&ZY6T[1_]WRN\4T
MU<"CN(+E$.XW_K_]03ZL;,?6W9$+R]V!OX-@F0UL^M<,EM%ZA?_CPN0/VW+^
MN!]K=/2H ?<,-47OCD;:D%H>C%+>6V^+Z ORJ_M/%0;[,=6UH>;-D:@:?,LB
M/XO3=6TQZ.UL_M#LJ[L-#[AO^O0A<H 8X\(VW?;1+]L=M>'\?M74F:*[(^)7
M6W9PXY@?UM:^/\P8K>/!C$'AA#!C'FXXW%H@'<PYI0^:18>.*5 6.6[S3;'4
MY6CL^-BX>3D%6$#*X]^5. !K_36#I3W!&3)6;-I\L2C3 P3(HL9]TA6C ^I)
M &-;]R]-G,4_+QD6CL?9PEP4V,H;MMRD 2<"+OXW1XBED/+I@N-^9L-_J?5%
MLQV[:U"^40&*BN;0+V")J&T#=N0%+9&F;5/'_CS_JOQI6O>Z8ML!XD6O+T6)
M<#(-NAP@<7DWB1>2HSEDV1/V,QU2[56!#;UP#,2>"5C#0Q;%1[/S6;._?YY_
M!IMP/%&L[ZO":M,>IX;#<GP<EI/'X;HGQ<5A_\WT*6&?*0;18G(AYB\D +/P
M^O(.L=J)(%8)0"S&:79V,!.B;K\C-RX.DW=:;="JA*C+&\1.YQ?=2W$_.Y@)
M47<>.%RU+MQ@CA!U^8/87H:#EV>;NJ@S)Q/-<2B]'RN:!>^U38-?)&T(MK@R
M:^-*\B@SX'V5 $$K"X)^M7Y3#. I3JGH,]\SU3&J_00[-N_CS2<WP!R@Y]I"
MTB1B)3X1*YDH(*T?=#C#I("%1]3^E^:,6[IFV\K_],8*[\[$*%=OW#7EE%U#
ME(Z3K\$I>5E*"OZ&*8[=$9OR6@QA\ZIR1>!%$@Z*!D]O^ZK,^V\P:^__/IHS
MSD/:++2,&Q"4OYL6D5)8QMO!Q,(RY< )*:B3B/8:]YQ<(V4" =G V;B^<CA1
MSI]\BT6D%O-<$7?IQ3P%<YW;R27(=[;,)43?63$74X'_I5A@[CHVWX3;HN S
M(D8LA7?FBJ*(OX*63E^I$4SL.B-:1>6%1BWL>-_JA:&BGTM(] 4>#I42VLO8
MR2$B NL2F-@3$[V<'AP]<6X<?FZ,+4ISB(G N@0F]L7$FYE'1/BK$GC8$P_+
MK*(\X2'!5*$<XF&7>^>,0'!BZIS<O;.+E,*Q<$[,?C9P$AX) :1$@"3,5@&F
MY XYX1<38$KLB!/.$P&FQ, DO"X"2$D 2;AK!)".NLIU'F#QB.=-MFL]HP84
M 9R4"<CC12E!0,XY<*T:IB#:?E[N-48Z.NI1$G0XB ZEI.BP2Z ]*\8+9?Z2
M)U,SG/]0R^QI/_BF4'>*EP197Q^J]DU6.-ZRW2)B[O\-D&O; G,E^6)1&K.@
MV3[@'[@7>:/TA@5>'J5!JV?[T-$,&O ZY(?2&Q9XN92&_RY\ ODC<W!UET=C
ME&1L&Y@WFO\K'_O3>=,*+YW6>3RD-ZWP@FG---1<\_7:"B^=UMQ7 CZ6U/DL
M!1R5S2EL:([3+3<23)C"9T8P8=&>*<&$8<H]J81]>>8DR^,!EH69>!J2"6OO
M/$DFC#9.";:HHH@)1NXF\$VH.+43U]?".TWB5+D4]#D31\>65#9!S&.(>8JT
MMDT]@@4!N<F0$C0YG":)94LM:2(OU,#_F3$#OS\V9[9BJ.=<=&_'4M*CCIRD
MSK="G>[0,6&.L)H.=G:'/T,+/ -?812Q]EL9[[3;U5=,<%D26N*IVG1M[(PI
MV),G;3*C-I2"Z.D3G;O&D(+H^17OH 44?*(+W3A9LGI[&X>L:\I8>F05O)Q#
MHD>%. 3_\N([CZ*.8,/SH-VN[$]!Q_S&1S8278C6<R9K(= VK.#VL4J;8OON
M3B%^)ZY"LIVXY/IUH0R[S<&.+,6Y/ZFDQ+G[/A<"'"TX" %_BC$@L+X[B8<2
MV_"$KM.A,U/T)\N$]SESOB7=7OW0_1]M7N:9A!O7$S($W3A7+CV16V/>GYK7
M&)AE<K59BW/8!VRSRWUF6E0OX"W+2(<L_C:F8Z\)LG#"+:OA"$&6(YKQIN?=
M6/2$;IYWJVM&G,C%G FSA+L/N"D[G-=IBE5K<&4EYT@/43.+#SK<F\8K*(VH
M:S[0 <QH9E'.B;*+0;8LZ4PH5!;G"8>G?%F<)_S20YPG?-!!G"<\46A7,*?_
M9OY&#=6TO/4LW&?WINW 3B@ZK\2S+>?6=8K-;%@*M>P Q=:7M9%,L3$"YBD,
MLD#*%W.HH,!<=<:%-BV/$:2-V9$"2^>))1Z3+@66SA-+/*;J"RR=)Y9.<0,@
MJLI^UZ#1^&D.A^8,E/4G9:Z ;GB&&%I?VO$8:OUP-.-EIMECG%]W! JSLPJ@
MR%T[LR"SP,5YXR+I#,F(8@*<I=2<LNG,1HOA%VJ^6,ITK V?Z0OW]\+=X[&O
M_&C.G+%IP=36 IG1R[DHO5U0-&_:LZ#HN>FPNWQ^@J)'\BAWGK=OF#BH,L.-
M4TLV-C7#2\GC^;F1DIC.:1G,[%;T,R=EQ%KR2,N-NI"@Y=EI01MI*23LF5%R
MHSXK*'EF>NQ&2@KY>G:TW&B3"%J>G36RD99"PIX9)3=:(T^6J<Z&3M-0>]1Z
MU8;T&4MISSB-:(32N3[/;,V@MMUS7V&OI*%N6]E%F2F"R/G1>C?*9$'D7(GK
M:(58$#D_FO+&,]G; -B*OJ5HAF:\G#]Y-ZWIHLYA0=B<GKV"L#D];P5AS_N,
MW<RQ#K64KYKM/#TSO2,'9(U<41ZY=?/Y*HAZMF?K9A$LB'JVXG>SB2.(FC_S
M1MS//AM1&\V5@H#GRX'+&V_!F^R\"]:Q:3E]:DUPJOWYE*Y?1(M8RZ5PI"#H
M&7/H%L7'''X_#SD;JZA,_H7MEM"Y5^>(;<29$S-R,7DDYQ;G@:CV=.YGIB!D
M3CC25WZ>J:. Q:VV% L=U>="3[?>[;TYF9K&TD_@/Q:]J%SQZ/(R?96/W@.K
M-\.K"=?:K K,)GQW/U4*-555<W-WGQ1-;1OWRE1S>$]*CDFHK6L[4WK!6B>F
M<4ZE4;?3*+2>,Z.+'QK7J-T\3RLHFCY^>'SCNLZ'3D*+XK.:S 8*B1/IO.@E
M3B2^Z").)$[IM"4/2YQ.><G&VDA:<:Q="*'%>7A.!-W0!U,(XF./S:2+D:Y3
M2,C3\Z*7$(M\T468"9S2*48>E#B=SC/*N^P@Q%\HL)RPX[4L0H')MTE*E4)"
MHSHO>@F-BB^Z"(V*>SHU>#QV4^E.*([=!&&8*H7$L7M>]!+'+E]T$<<NIW3:
M<IM=G$YYN=.^D;3B6+L00HOS\)P(ZAV>)6[:M@5.GE+"H8Z2".HFK!ND32%Q
M:)P7O83LYXLNPA;BE$Z;]2@.CN"3*R6;0]X<[@Y'=X-YVYT37J]=3S>*%!9G
M(@/#5^ 7CVQ>56K>H'33PMP5?<XEG2)7=29T6L]J%G3B[#;)5CH)N<<;G<H\
M.EQ2$AI\+3)YCI-EV#?>%LDF==@B9X;FKO!;[V&QK E5[)E%[S3;+!?EVBU\
MY__<_\K_-_X^]*[>6+&H'7J=QY3LR[W>!^,_K;U3U5YAQX)/=F83:BF.:1VX
MBM#O\<,':I@3S8AZ;=S5K+SBP^KLMRWZ"5ZT80NG\.=>&VC_-7)"[YHYUBU^
ML?U-'[0?M[!"<V8-J>W^<TP5E<$4EG'WR5$&.B6V,]<![R- U[6M_4UOY>F/
MCV^:ZHQOY4+A)QC<&9@J@-F!'SJJ__SG[O-#Z_GZ<[??[WZ])97I#V*;NJ9^
MO/H [V?/;GN^&'[^@S?.!S:ONT]3_Z>/W4[_NM?^3^N6R(6I\Y&P#QZ;7]M?
M?K\E#IQ--C'H&P&+2S$^DJ_-YU_:G5M2@'40Y)AK1==>C-L_9S:PZ?SCU=U_
M_4.N%CY^^C!-?I AL#ZU8(Q/MF.9QLO=MTZ[WWH@O7ZSW^J13Q^\C[,9O->Z
M__;<[K=AY&;G@;3^??]KL_-+B]QWOWYM]WKM;B?C"?U+L<>:\>*8AD0>;NYO
M2+%0*3<RFD269/]D3Q4C@K?J4V#GQ^[S5_()^-$P#2:\M"$Q%#QU5*K=/IC#
M&2H_6'WTBGA2_YF.MMUCO&+"0OOQ>BV7JW506.3"]3\9RR^'@-W%2=VEN]M+
M+GOW5;&^DZY!W^> K+N(]<^98L&C^OR93DW+B4^WD6E-% =I!Q"AP]N!:>H#
M1==-D(8_5LE:Q+4V:N7JQW7*NEL0_K_DG]^:S_W6\Y??R7/KJ?O<)T_?GGO?
MFIT^Z7<)2(<^B  BETCWF<B5=^I[TGTD_5];)" X%D*C>=_'K^5&J9P#@GH\
M\&A:Q!E3\I=//^)J780:*E5W,^D3>[KE.L(.HOJMBH84_&ZL*O,Y!:7$6"5[
MZ>JN1Z>.:XF5"A+!%T7P=G8BU+1.S&U]2P%S%.-R*;);V6.W<GQVZS\W.[TV
M8RK!;RMC^'SF+"CG,]H(7D'^P/\ACNG^<?[+Q9"D9J/'A#QJH&0#<H![;S?+
MDQ:S&/%9]]'##OX*LT_AFT:A'I80Y[ZIG[3)"[&MX<]7+&(J%_Z"#XHW?TY?
MKHBB.Q$??UA;=4 1PPFQ?XZ4B:;/;]>G,U&L%\VXA<FL+&[%9AJ8%IA3UZ!5
M#4&IO2U\7'M_A%KDOO9:IR/G5IDYIO^!A3T@W$]<VZL*IA<94EV?*JH*;__Y
MJA TQ?PIC"G[H5S!>6XVM^2%N<7*UP\5W9O7P'1@USXBW'34#G^^0A_):=7C
M'4SR3%\T&^6(@YW0#V.4ZM4=[$N;M#J_M9^[G:^M3K_YA?2Z7[ZAA.Y)I-VY
MOXFE/W]PU(6]NY$H@<WUG]E AQ3W_EWKAS)TV'82<T2LQ382Q2;VE [1AZ42
MS2":8Y/AF"E$[]<6>1(C/3.FJU?283KW[>7*3YO8+PN6V\Y5;6-H6J!+*7@V
M,^?^O3DS'&M^;ZJ'*;9,O[+Q35/+?,7QUC7;&N@%NFEIJK)=G67P6VZS[YSZ
M:67?CI?M:\.<,S7[RH^VYY8>,HH>HU74K^XJC6NY4:XUZA%JQ=[2,%H".N8T
M7?''0$U #S5!$;7(GS-+LU5MR'11D(?IZBY:D+W8)*P7Q=#^9O]^'X1?FI#.
M>LO;-\\WO1O2FDQU<PY[GNX>KR*>=,R;4Y]>*2]X18MB#ZATZ&'L=F; ,:EK
M!HTM-)JJ:E';]O[S!7XJ'R8P&E=W]7*I0'I3#=Y$_J7,UZ6&M,L2\B9Q#W]V
MK;[Y9APTDP8<WX\657&([X?.@<F-KO4$AQAP<4IG84.^NONJ6'-=,=3UB<:<
MYY,) ^C_T:;[G=C!28#N7Y1KF NV4<A[*G":L'[G+0BE\M2"/=>FBD[H#SJ<
M.=HK*J_ X]1^3][!8@FN-@\>YBC+: M/O]L("N29ID65PV%0 OXM%-9!\'XS
M#K^8<*@\C4WC&.]%HPQZ!L;$JXTH+2/]T,42@$L3\[_^40>.^&C#<SJ=X@J)
MP98H@:$TU&=H)1 %=AM6?&8X7/ZO9D2/UP..LS1'@U>XUB(%64JF,\N>H=GH
MF 2>8&>M7'PW>(_\BCZ^YM"Y37V2QQN*@1AW>C9?J7!**Z&O.3HS]JDR'),A
M9FK%L*PJ/Z4ZN8,MKA/OI:4@/+*.X,\G U-_9[\7=#MP!SN>OXNQ /TQ'"O&
M"WQ@D+>Q!I\L!=O96+(;CV%/7L_EXH!Q_F''<,4-7YBHA9C#[Q*9*A9Y5?09
M)?^W<%.0,7!#6/949(@A;,9F!\03H&P3+3QQX?+O881PG=3_$;N\&_$MCZ_W
MBPBL&V@H':)LL]H52!%;5?X*66;>=5""J2[4X<%7GMX@;4-%UPHE@SD9CNGP
M.YE@@L_;F#)_&FI^@9C"._D]&2LV&6DZZ(R*KL.7&*I'5?*OF8:*).B/ ^H]
M .]<Z)(E](^YX7%/HPPHHCZE4<O$KS$\3E3X%O1P?'1JT2%E6KE<)"RMPB;O
MX'U :V+/0.#;V.$9YNN%GYVQXJS/_4U9G25.T?VQMX;W$@$[G;PKNFL< &+@
M^\&?L )\GCT*/\)9>._!K 6;38)-4K$=TB@059G;-[O,^_N99<&OW4P'%"F.
MXLSLPT1*_>KN=TQZ78.QEU9$7!QU3+)(?$@541S"%LD)E)QHC@.T!YMOB#H!
M2CM]3BA(OCEIHU!2ALP5\: XBAOA7T/U\AT(E*EI.VN6T_,,?E0N5!##8&[.
M=-=IV;ONDW>X+[6/Q5+QQGO &6LL(C?%B%S::'>GO@ QM=_OA&A@2W!'/,0>
M!M'&=HA>,C@!! K1%0NDGS($DQ6SWH%F2"0+)5+DIP1V\3KB"WL"F(8Q+%^N
M +4F4\682RA^X64@LS"F\$)>+//-&?M?WX TIFQF*AUI!LOE8:XZ=)44"Q\W
MS8]]+7_T']OYP.;Y^0\B9WD/;YBK_Z1FN/P&BO%UT3]4@B?)379@.I=@]D;;
M;=V\.3!*]24:)V2S?5M,*N*[%!\;QTEGS<WUU6Z>1"FEQ29CTAXXFQCI;]8]
M[,Z+:<V/4./9R]C^#KV7K6KTM0)P0B=*+,:TM8XA1O60R.R! _8VR=!DU[6#
MK&P6GV>V9E![#[TU=JINK2!OS(R/#?PTPNXG#.4?.%XK^APEF>+%G\0O; [W
M[A12P4UQ8XIWSDWYT18%#R-;D5JI-HJREIB-!/+3,)E=,[-=Y1"&=:]01&1\
M@WZ)8^ES'/Q-@Z$18[@"$V75JV8S>6PHQE!3=-01,!4-'\8+LJIBJ3;!.+JF
M;@I'E=XI[R/UO LW'NPQZ(,+KGX'Y&-*O)OVN5U%!BL0[+)=EF /!TB394NQ
M;F7X5F(U%X1N,ONJ8[ZZ=X#DHGL'2 JSX^+&TB,SQX$50MZD9;$T]V)V=^8P
MK@+V6B78VLWYE3M+QFRBFHY*AQJ<[5<$+QRSWWAWO8GWC?WS5;OSN$K \M5=
ML2 58?K%PN(:DS_=.S>PP-8[# 0A +WVS'.FF,L)G\IL._*R=,3EYWTO5Z\?
M2+NM2G9$AS;AR" X"RG#Y]/!V%INUQYV1K_U[_YUN_/0ZO1=0@1V)(:J-E5>
MZ/7 HLKW:V7DX T;17]3YEAM(+;B%YIUUH=]\/]FE]SAQT=#5T2['<(N*.,5
M8OR+75#SGB(M(-4#Z;6>^JVOG^'?R_N(9WB%._XFN5E9'MH51WE9W.-0-7NJ
M*_-;.$!98A:3=2"RKN[ZS<]?6GB#[Q[F _AFM_^W9#%E?#DIF?07]RV-E%+Q
MTS2@O/6?]A)!(]W,B/@ ?P)!>MS%IG.A?_+OW+Q)'P?*\#M85S-#O8:M,JW;
M?PR'E(Y&<:^%)6+6!U$0$&D*&5NHL_W#]DMY7=W=-]D%N.;S[Z33[;?@2/BE
M^?S0[OR"!\&_X,_K+]WN_^*_64$3O#?7^_1!B;ZODZ'[(V.N*>7.K93R.]-.
M3CFA5WL7=TWEJ[LG4)Y(FVSDE/BH3FV*C^U.LW/?;GXA8+&!^M?LL^I &;(V
M/W Y0P;+%Q5VG)O9<7. 131@DC:<DT1VN>)4W+LVI<>%FW11D=.^69]A?D_B
M\H%P&K'_$=PNN'T#:Q4];B_RP^U%O")H@*&&3+ZXF/2@V<.96VH&O:--0]'G
MML8\J$O9<&\:;A\3]LPSM6>ZPQ[I3JE[M^R2A$:Q*J2&D!IIL&C)DQHE?J0&
M3.F?&!_50#W E%44 /"![O\;Y8=N8OU8FS0'YLSQDMG)LV9_OR"A4&H(H2"$
M0AH<6/:$0ID?H5#&.UX&V/6ZS03"DV4.J8HR0'"\X/@SY_@ >4[J^"OZCC^.
M/7\PQV[_U];S97O]!(^?&WE.?:H7^7,'LBE]H2]@[K/CG-T+NZ3SO"P+7A>\
MG@IC*3ZS-SGB=I@4VNCD41DZIB4X77"ZX/1CF8H[MS^;TC<C4'^KI^AN@K3;
M=3E8' %-^6\V*W?CJ0!"*@BI(*3"L2S(G5N?3>F!CA06Q_LVQ<H1U-!,*R -
M!.<+SA><?R2;<>>[9U/ZJAD4]( 1A>,_$+\3'"\X7G#\D>Q5\3B^P@_'PY2Z
M[$IOVW O86JF(7A=\+K@]2,9J^KQ>I4?7H<IM7Z,M8%V66F\@L5SS^*GN>VV
MO.6FO5S=]=J_=)K];\^MW@7Q5C&!/ IQT?.,H4^QLM._?VU_;O<)UEKX]P6!
M?_VJYL;B#D<MG.QU"Y_/4AQK5]4'.D Z<&&=A$IU1*;6QQHRL.U)5/#X1"<!
MM+O%%Q@1S!'>?'#P3I0+>7PP!A;.J4S0L;4J K>_M]WQ3JO_S@JJRI7,=C#N
MN'TLO?S/17=XMPHWMH]X!$N<U4AA]7)9A>; 1UA(2=$,VR]0"W;[FV*IU[II
M?O<*F7F7]?P:M5@'33-82:<)50Q\".#K5S0KUIH1Q="7-=!+$G9Q52:LYIHW
MH_5'W:+EBS?*K9CEU2-?'7S0??$;!5QAT3>WRC2K'[VZ>K)Y]6[);+^ .@Y@
M*R-*QHH%$M0F0Q 06&0.O2!T,+\AC_Z>3V?6U+2IQ$K(+=_K$\"M;+9.'?IC
M2$$"8R$Z^,8Q+3R@X,&%=T4B$V6.DU(IO$^-3<4;\KLY(T/@OQ=J4(M5#=?<
MMH3S^%# &N2AE?@EO]],+'_GO>M-T_7UPLEOYDQ7US\<4%VCKW3]8_IC"EL>
M^A3 #_L0>AIOD6 SMO W+N%#S]OV;!)Z%G8G]%'4E$%4A1Z<6A1;=H9J18_Q
M!?Z''D(-^N+><%FT_'Q5+,V][.8""?#ME2)4+'9> (]/- /TMY<Y-O7R\.R6
M15^0<3/];DC;('AJNQ!:0R3C"CBBL#2?B?4+_W0YD<7RS9E%1C-G9M% X<,I
MM1@BC2'@V[%@*C:B&9\=>.54J2TMUX<]FY4A+,+K*\K>[+T5B(^3P/5JUG V
MP1)J0TP9@.]BH_MRQ+Y?DXMMS.-.CM6,5U,'J'TWS#?WCN7,</^V-/N[[7TR
M!%48.!D%K>2U'V+(!X&!93.!=#,%^V2XMS,!)*HV0K@@+P)R49B,8%& ))!X
MJQ(N4.Q\(QD7,JH_CD]SK\T=C((<@R,!8 8*5NB$0V3H5OHGKAQ15N \6=Q5
M73ZOO"J:SE@M(&S9[O@[J'C]]5B+\DU[A^U$X'MW"W%"N%':$+8- :Y-X$2P
M-<;0R&A,9& 5T1E6>H9-Q#=.D#M7WC&@<Y.5%[38UEJF?D.:-CO')/;I&GU<
MTH5)A&]75#![;+I*,-@D;&NY(-A>!X+BC8MS1CEFSFPR<A/_)-#0W1Y7R\7H
M&NLXP1I&NL>I=^Q[8P83!P-5\AG=3!OE%.J5,$O#7?*ZUO._N*^O. M<(VOA
MP@JYKJD3N!<+30%+3VKN367X_\VII>E$+ONU+)<ZQ@UH60K,VR:N7 ?V +$Y
MP[W%,8&S81383P8/]L,WK&JJ,*F^D+\X;88?E=I#2QNXV^X*2M4$"<CDX9O;
M@,8C$X@.IG[@?_=8#I/[.AHEOD9E@S1AG8AA#S>@&&:#'(6565VM;QT&00Y9
M8T*W\B?[T/;:5S-U*_@3;^^P+.^ 50F%=V,%31=*B$08VWUT,"<SV^WZ,/=V
M"(X>VS0"FIR/>M0X\(7*<(P*A>KJ?I9',(0>"#-\Z[(D,!SD0XI0G.$\= T/
M'D2 VV%D\ZIO<*]13PLV*(&YZLJ;A(1CX':4[W#4F\0<  '<Y<"0;A%AMDNQ
MF6PI3SU)Q]XSPO+&FT]/-%G=9AA8B'>I5 1^B]^:0U=2#AF;SHRE)J5Z[^:J
M T6.'10EX: X,P?%LH#6+=E0I2J#YL#+K3IX&<LK0S=D0]F>3!>2)<V!8]ND
MU?FM_=SMH$<)*-CK?F'%!GL2$//^)N/&JO==%!2]U@.69X6IM!^:??C'Y^87
M %B+]'YMM9C;*VM*;!?.@5]C Z 4A;4?L6ALBEADV,*UV>N%B'&J.F[^"T'5
M=BBC#+T%_>/-4A)IP!$QH']NJDC&JQBQ)(\RD3N:.JUZH+"Y9>I+!6E[T^+,
M=I CDF48J,]\X8(;N>/&<&EVP81\4NJ!#CVQ*4N$!Y(=5E(WJ0RY*T^]CEBS
M@?X!_2/&09::D6_ML6Y#Z$' KB+TXT@W%<?[$\=]<U=1+F#, =,TK)?!NX($
M_^^]5Q\?Q_.'6->V3&LZAM??%E&[,M_P#U_5=S5]\G_0]V@Y8-Z[/]8,C!JP
MZ;'7LP@$_)?Y*C!EWQ]JY=NA,EU\ 5,>?-=@8?@Z1,5W>NWJ=HLUJW1HND7\
MKIVQ-OR.<8%;UIG37T/@"7>!F[YU-\7_-D"Y\A2K@WO>WJ9M4\>^79@K''%Y
MM*M@Z22(S?(9'=H^^[_[9B@S%39-?;^5^9^:#UB./;BRCY<CP\^5NG ,EWDE
M*X\IVR!J%'O,/,OL#[SI_*KHKILL H]^*X_L.<$?.1IYT?/YO^OP'HU6X.V;
M[IO>&D ::_J+2USK^H4.IY&F_B%7&J4KKP?8S+Y^493I+>XH_F]@4Y\I8%/#
M-G[X1=-05S\(/+FA15BXC]O&%F'?>@_!_F"%J[MR \[?8C'4"XQ#,@N A0%6
M3A]@Y6NY>%V2#P58M5J6ZK4&=P#CL:H=:U*-[39M\@PF"9 %_9'7\*QSF?;C
M&N\DP3&5=8[QMWRYXQWJ>-IV&A*W*C>D1C7<??&"J)LC.%6/AM.1\E66ZG59
MDDMU7@#%IT[;-C#2;UJ8_,$$*GG7,1U*2N\%*R3$"C6?%>"G?]_Z&SY/4926
MI!)H%\5J@1?L7\2 Z2&HOC^"CI2>):E2JTOP'EX0Q*=:^ALU5-,B#W1JVAIH
MIZ[L+ O9F13R&^MJA+_5KKLW11E:+!:E@E!'<X&C:J%P.(Z.E:05J=[@!D9\
M*J%/%ITJ&J8Q3ZEATVA_:M:PW]PE^<3\<'BD(0:CR.N,XM'&(TV:2FNI)#4:
MM9V<<F'1IHM&8_%P-!XKMDM%0.-N]^RY!,DR4HE7,@Q*;-I]T\%F?RMA>L%2
M)V.I4.@M=4VZ(A5*!:E4X)J9! XSQF$H0I>Z)EZ5RHV2),LEGG%XJ(*>*XXX
M%?#SL:;\#Y@[JO&HRJ%9;D[AQ>[M<4R'F+*+\ZS+L_PQ$"RJ"(=G4HZJ4!C>
M)\*3KAA.TU 7=.C0=,+PM;I4*7(3-;V( =.#4R@,OS><CE2ZZK6*5"['2'/B
M4- *]4H<U)<X8.ZHQJ=ZY9;/7]Q;$1 [\S7E?\#<48W/<&C;<!3CA=4*<Z5#
MA,E5%2974CIR?5U'7NZ_N_V@&K=^8*TKS7CYQ315+#>5ANDE2Z5*0RH6N,D6
MN(@!TP-6*'GI8& =G0M=K!2D2JW,"[ X5<C ,E8<+,3VA2HV7C!Y]NOG80-3
M1C-/_%Z3FA# "?&)'$K.6A""T8$1H3L"$C *I))[4BY*Q2(W7HJ+&# ]/(5R
MF/;'T['9(PTXQROG*6XS4W.#]B\7V+_(0+P<RK%B=$D]*Z1:*DN-XNX;*B(G
MY'*@&,I-B@G%8Q-#:A6I5-X=\CJ7M)!3Y_H)P<X%-X4RK +<E,J-&:E4JDJE
M&&J/D.F7@\)00L,N%!XIS &%Q8HDUZH\HY!/A=R5WOS*[1( 4S5G YTF6GEF
MWU'VPW^X$$)J K@N%<H _8:\-_1+ERB SQ).M3W@=*0D;4C51DFJQ:B@<4(X
M'=\\=F,Q\76IFE8AOB_MYN?VEW:_W>J19N>!]'YM/K=^[7X!%/58X*_VD;3^
M^:W=_WVO:N/9-Z:^.*=E/M:4_P%S1S4>W0'+4KQ?-&6@Z:P[E<AK.O\UY7_
MW%&-1_MRQ5WHEFQ?5'5\4N98$8X+V"5I"R2A\8>R2/Q=\S8MQ1@-YHW4I7)]
M]XW)' L'/F%1#"5-[ &+H].)&L6R5(I3O)9#<7>*Z,A"W%DSNBQSP^[5N<&2
M"-7)S32RB5QBS\FBJEABO!-*$/$H$]C]IJ$RR@0^2L5E5ZQ+M:*0K_G 52B5
MXG!<'2FBRY6*5*UQDTA\)OKH QU1"QOZ/F/_VQD?^F@>&".4V.'OM+?1:985
M*S2D6H6;.J87,6!Z0 KE-.P!I&,#R[(,1_5YYG2>3N?U%=LGTW*\KO!?3./E
MND^M"5E/N'=SZSG)K+_(=(UB.%UC)7?:5UO2K%XNEQI20Q:%( 4LE[ ,95$<
M ,MCO1[%AB27=BL2(JUHOXJ0 4M(,-C)&"R45Q(@2YI5UJ5*J2K58UBJ0MI?
M#AA#-[)C@O'HU-%:L0"J!]>74D3"CP@-BP$OC6H\:G97=TM+7J3\Y =K%S%@
M[JAV)O[ C<X_B70H*[6Q[C'DRBEX:K4[ >VZM*/<QL*7TC&-87J67[E0DVKU
MW5=5<DSB'&%J1\F-N)@ZTH"KR"6I))IM[<C2-@WV8BPOYV88>1EC$BLO!Q)8
MU6R62H9__]]-1(_H)/) !T[;L!UKA@6%O\&7*,+_INJ#]\)4/$AE,-G+X6@!
M2YK:./M*+13H.&SVQ[H<2@VI4@C?526*0WITZM#)@%JD5) ([A1;TP,=>I_*
M[-.R1"QJ3RG\\)7J<^^\;/!Q7EZD_ZH4R@,*\!PJ0*C_,-;S."\=SVJ]498*
M%:Z[G0AD9HS,D,P^!)G'W]"O%J1R@^LZ$3R:4W[D+-+M(ICJ9$P52DH*D"5=
M(PK4W8(LU4M<LY+ 8\9X#*FV\?%XM&BOUTI2O<YUJS\^S3)/M N!S@$#A;*-
M4KX%4@$17I=JHD.F0&$ A=M2<E+QGDD5L!AK^6QZG"M^$&$R,>!%48U/E>W>
MG$PT![W%[E7>>_B=9KQ08QBXOEN32,.]P"OSX9(]]9F9Q-$82A ,D*)IJ"N$
MB*^P_4TM4U7L\=93\IJ7Z-)%#)@>A$)E-?:%4*2V=5X0$LJ4.);%@)=&-3Z5
MJ=Y8L>C8U%5JV8NJEW_--&<N$DK/?TWY'S!W5.,S GH_F\QT!5-=2#"1J4<M
MM+F:Y,GR:WCT''/X_2.9*A9Y5?09W9;*%(K@+5[#WO*D6%VKYR@.57_#5SU1
MBXFK;:;%']ZK_G"GUEQ]XU>6PA/;4_?$AK.#>F2[\WAU5[@IA#,HR90"U? '
M$MF\Y%"0:'6"[H#-F3,V+4R"RF:IX66R<F.%0@'_-[Q2MDHPOA?3_+AEQ2&O
M?M2*V[8].^EJJR6I5MF\5(W-CSD4S)EC._ 'IE ?G"YVT5(Z07NR',J 7<4%
MDQN9R8L0IG;7<,\QT7.$LE!F85R4>=Z*"T$9GR;.=MWE<UAWV:*QA#R@B6LL
MGU/16.0-!SF;JJNH;3G#E\T*@77^OEUNZ(/VJJG44&&=0VHHSDL"*UTLYVF&
M&[=<2 E8&L !L[@N7MW5;L(7#GXB 5JKWMRVZ28A;V1BVM@19(S43\JQ-3'X
MG@I]A<^3I%;>@;A]]948,#LOW_A%#)@:O"JA2X;'*2JY@Q>GWA5S,@$ZVO%=
M)^&>K>X[#M9"3N@3"7?,#*QEGR/XB..U6"DDX^X(-UX,+6:WK^.8A< ::A6I
M6 AK1^R<WW@SKQZRI/>9^%XY<!LG+F^8N'#"<'WJE$,IDP'H[-1H#DYZ!W85
M%8;S J'(U**=$#KVW@1 2.8'0GRZ3YJJJN&N*#IY4C3UNFV0>V6J.8HNP)^0
M>S&D,RSW'+>\;7@;GLHEB+I4K,A2I;R[_%Z.:9LC,(4['^\!IF/O,@"8"K(D
M\P,F/@V^YG#H.BHI*JDC;:@Y7. _QS=^WFUAF9#^^DP=13.HVE(L TP,.T O
MCUPIB&)BPWQ_OKH&-JI*Q7)5*I?W[P&-=X+VZ9GV7F#N-)@+*;P'8NXXB1W
M7%DJ%8I2XX V]@=BCD]UU[T0O#DM4LCI4]W,#,=.F'7H4<FE3CHE?8H%$,9U
MKGL0"#!F"\9PI"4F&(_M,"<5&G6I4<KE;>$L)'NPU2?ZB,]+TI< PZHY&^AT
MKQ-W5V?<?4?9CU5"D875QHS92/&Z5"A7)/D ]:9TB5+\+($62M,["&A'2NB&
M5&V4I%J,K+P3 HU)Z _.P%3G^%^L.1<8Y+';Z5_WVO]IP:F!HQ#VP6/S:_O+
M[[=D?1SRM?G\2[MS2[#T- E0[,^9[6BC^<>5X9,>1*<C1$5_3(DR')J3J6+,
M,2IHL&O@(-M!RA,-B/QB@?2?*A:KK^K XT!Z%1M"J_@74PR8/V:D&8HQU.!A
MEAW';J;>I#+UR/UAM/ '&I@6@)7! =9T6V#T9I0/C?*FJ<X8OBK\!* &EILJ
M*D9'&20_>82./)*O@NPZG@[&UG(^VP_SJRWR8Z##01]0N4B_]>_^=;OST.KT
MW9T(;,00]IA:L _E6$,&*#%57NCUP*+*]VME!.^X)8K^ILQM>"Z&-N*]C4[N
M/BED;"$__P-D!*")$0&KHJ-X  !\^J# B_#!G+'/8NL_V8YE&B]W0+TV:75^
M:S]W.U^!6,TOI-?]\JW?[G9Z$FEW[H$7O$>SF=!]%T'3:ST0^ NFTGYH]N$?
MO3[\!R?8(]U'TGUJ/3?9'#.>W;MOG>:WAS;,Z'VZ(Q\@+-:E9%K"(Q]ZD"\!
M55=A >L$1C5^OJHNE!=WEQH_[=95EC!)'8"/IL5.,P?D%R436/_8)A1.-G45
MCZ?6+P4A8Q+2T S^Z!C_1,X/<':ZM_9&41"+&2!J)2N.!Q0)HN:0J$(T)(NB
M8A8H0G_:5O!<6"@CA_0M"_KFFKZ"?_--7V[Y]Y0'ONNG^.ETH>4 #$+69+J\
ME/W2Q::+31>;+C;]Y"DBV55#5'1JLX:,/.Q1Q,A)QN+C*T$Q0N^A*RS/])4:
ML_4BOH^P:C>7HW9=D!TSB>R\@BQ+E4JXF2.'Y!/ "0$G=%UE*W#* >"4CP5.
MI5S$NT\".&<)G(A+&]LECIR0Q"E+5;DA%8N[4S Y()\ 3@@X$3<OMDL<.2&)
M4Y6JU894*\6X',>S-I9A612;)6LQK8POE._P+)W2A$C.]Q6#ER+:.=A.=^1Q
M5-JZ7ZW6D"KUW8WG(YUEIY>0 K6G06TU='=C-VH35#P;=5F2BP?VCA6HO5C4
M1A1HBB%KD])Z9:E6J4NE0WO,"MQ>+&Y#MS)B2=NDE&XP\^LEJ2R?!V[Y=(O^
M8IFV39XL<[2A3H7@L1/S6*@<)".92[&TM7!9*I9DJ5$[K'" .!DN%[6API^[
M4)N@%BY+E2KJX36!6H':O5 ;"G7%D+5):>%%J5XM2/48];4$:@5J@Z@-Q=EB
MR-JD=/"R5*A7I9)\'AH"E^U9+XES=\2 \K;<2QQ9D#CW(PL2YW[D2R(QGYZY
M[I1:BH/U3EH_IEC,Q(YNVRQ0F4]47NC(@L2Y'UF0./<C7Q*)><RP<SU(&E9!
M\^_OH3^(VK;;[N.1\I9VQQ](DW#-132575(!B9!Z!*]>D<HU<8."DY$S@%Q$
M&](8D$LR_%8H2XVRN'O!R<CI0ZX6T9HTGI1+*G96J=>E:E5(.4Y&S@!RH8S)
MN%(NJ<!7J5Z3BM7=*09<:Z,9.;,BM-$'.K5@.Q5&5RS6WIR8,/#?[ -.8)QK
M!@JE;@8ITC34(#W25E*K=0DD.'>L=*$C9P"^4$[CON!+4%VM-J1&05SXY&3D
M#, 72DT\0/(EEO15J$JEJA!]G(R< ?I"*88'B+[$+E 4RU*IOONZ&M<Z[.D\
MJCT 23 ^RPF(<\T^H5Q'CP@>#5)WIY9+4J4AM 5.1LX <*%:)#$ EV0IFV(5
M %<2@.-CY P %PH9Q9-P26FDU5)!*G/HU[K0D3, 7+CW:BP)EY026J_+4B/&
M72VNE=#3.5*?J4T5:SAF3M0'^DIU<XJ-S3C!;YXYIQZ*>_G$ #LN0(JL=-."
M5&WP9\Q=Z,@9P"\4 ]L??@EJJI6J5(K1&?.B0)!K^(4B2 =)O\2*V)0:4JG.
M7_V]"QTY _R%@D@'B;^DU%A,M&L4^3/4S\27>F\:]DQGUUU$;FHV_!.*@WVA
M+]DDI=:*4I5#5KG0D3. 6BCHM1UJ"6JEY;+02OD9.0.HA0)$.Z5:8K'\4ETJ
MU_ES9%WHR!E@+10;VBG6DM,V9:G 8=[(F3A-?Z$&M13=33Q5)YJAV0Y>MGZE
MG(#7>Z&H<.0R6B@FYA$0\V56R)>5JU4J@ Y;+NR^<<!#U2.!9'Z0' JV'8+D
M)"N6%S#]5>!8X'@O'#="H:\#)7)2RG=)*E:K4B'&M4.!9('D())#4;0#)7)B
M%\LD5.Y+A?/H(L&C>_GJKF\ZH-V'*R@)#N21 T.!Q 7A?+JEK\]7*B6I5!=Z
MD,#N?M@-!2'C83?1:N=EN2@!"PCL"NSNA=U0 #"VW$VL;H-4J#:D<HSKEP*[
M KM![(8BBK'E;E)Z>@6M3:E>VQW'Y@&[/#KFK^[:QM"<4/).-VW[/1G! [[2
M;AIGIZPGV14W029ZMX6+0L'2!1>YE/D"=$E9]R8V3/;GJVLP?(NHRARIQNQ#
MA/<"76F*Z%!T-"ZXDE2.RPU)+A3/0D0+'*8DY4+1PSVD7$*:[E+*%:5BH2Y5
MJD>JO$+.\8.O4$QO#T&7D#:ZQ%>C4@%T'2GQ#D"7:*W#=[Y3WI9[B2,+$N=^
M9$'BW(]\223FT^W4=<;4(K[SR7,8OA?M=2X)F1<ZLB!Q[D<6),[]R)=$XF,S
MS/JM?_>OVYV'5J=_2]C/LE J.J9#B5Q_S\,.\@S5XP,-M4(H@Y.1PJ7$8=&K
MOZEEJHH]WAI;N.;N]M6%CIP!Q,(IBCL@MC.&)2!V3B-G +%P)N%N*998'E:I
M+#7DW4&#BZ)YKM$6SOW;+="VQZK.5*#QZ*&*N+'<!H)8U'8\!9,3H.::14(I
MACX-7!(L@KSI7TZ(<]'XHJB?:]R%DO+VP5V"N5,EJ2SJZ?$R<@:X"^7K[2GO
MDE)&ZQ6I)HLR.IR,G 'P0OEY>PJ\Q(KJ5*1BB;^^M3Q>L=VFH7KQ5$[PZ[WP
MHN[-;$Y6K!5"R8H^W;(JG5,J2*62R'Z]9!#*H>HA<4"89-6;DE0M[M9M!09S
MC,%0U"BF($RL8@TF:L?0<P4(<PS"4%PIIB!,K -D'9N&9'\:\^AU792-B<P.
M%.HLEPP4'37KF(:Y>@<G&^UV>0U'+M:E1NG(N^%"NI\W.*.#;/N!,SFM-W!'
MK"#)9:'^YAZ;6Z 9KI]QD-Q,K'9ZM2+),1(0Q#WM"X3Q-A$;KF!QD(A-_!HN
M KH<HT"[N(:;LY$O*37[0D<6),[]R(+$N1_YDDC,I[MMM?K;@(+*18GF?N@H
M/W@KU\P?1A/1H"/2?ORB-:@?W\/L-6,&BO2R,M]G1BKWN3X2JO7#L1334C5#
ML>9MATYLT,!1T[9,UDK>]VIGYGXK5PI2J;Q'?Z0S=6><,2:W0#(B(2A;2";9
M%KLN-6*48[HH")T_>+<)U(@,F\P%:N)EZV2I42Y)Y<H>>9E"I'*$RF)$RDWF
M,C5Q+YLL%8NR5"CMD::>H4\M7>WYR3)?-1NI#)OHAZL9F?S;YQ41M.8Q]E*,
MR#SR6,SS4G^F!AUI!VK+"=W#$Y$6 =H@:",RE>*#-JO;\ *T K1!T(:R@_:4
MM-O5: %: =H40!O*&MI3TF9R39\'T/+IU>Y0QW=BNYYMKKFL!!A6S=E IYF4
M8 \-EY1Y&\IG C*<H(=)7+_S.ON4\I=:=T[(V@*L4(+1;F!E[SW>"J?+52'.
M"8+;A%LH1!=+N)W0!RS$V]E@*Q1KBR7?3NC)31I;(F.2[^A'WI9[B2,+$N=^
M9$'BW(]\220^$]\2>:(6N3<G$U#J>F/%XJSJC@!I?C=:D#CW&RU(G/N-%B3F
M3ILX70F_SXJM#7G8K[Q[W4JA;,R68AF:\6*#/L?T.$:*Q,-63^S==M )U^X\
M!MQPA9L#FJ4+[RZGP:M2*-,P/LR."6)M@!FBZTC_[B4<C.>/R&V2+Y1'N)?D
M.SBF%4/RR=G''@3.4L-9*/5O+]%W<'PKS@F[NYG#26-<IVMR\J#I,X>J0@YG
MP!^A+,-U_O"((710@;2C=-!09MX^0!-:J,!D&M(OE-6WI_03>JA 6CRDA7+W
M]A1_EZR)BFPKX787(PL2BY$%B2]NY$LB,8_^*2\<2O[%)D-5TH11E!>ZDFYE
MD^[,L1W%4$&EXV$G]]*G3PWFC#P0H2L./DD]BG9FDP&UNB.7H@&"IA"$#2OE
M6/V\(!5J%:E8J B_A$#WGN@.E1L['MT'>]TVHEL6Z!;H/@#=Y5"B3"*R^S#W
MW49TEZN2W!#H%NC>%]VA_)Q$9/=A+L-(=,L-J5$O2W)M_Q9QIT WCWF6B["V
ML"3.GE]#R4L;^-6C>(AMA2TASB.>\1U*FDH"W\E;$XVJ5*O( M\"WWOB.Y3T
ME)#\%O:$P#</^ [E6B4DOR_<HOC@#$QUCO]5@&2!01Z[G?YUK_V?UBUAHQ#V
MP6/S:_O+[[=D?1SRM?G\2[MS2S#[E00H^^?,=K31_./*\$D/HM,1HJ<_ID09
M#LW)5#'F0'+8.P=> )0B"F )J/]B*3J9*I9#S!%QX'' A(IU)U7\BQ6\5-"*
M&6F&8@PU>!C@X] )-1S[)I6I1^X/HX4_T,"T5&HQ.,":;@N,WHSRH5$\!!4*
M/P':@4>GBHK09^#\Y!$ZTH2\"O+W>#H86\OY;#<^K[9(JX$.AFF@E"CIM_[=
MOVYW'EJ=OKL3@8T84JRP#_M0B35D@!)3X/[K@465[]?*"-YQ2Q3]39G;\%P,
MZ]E[&YW<?5+(V$+F_H=C#@%-C B $^P?@ #X]$&!%^&#.6.?Q=9_LAW+-%[N
M@'IMTNK\UG[N=KX"L9I?2*_[Y5N_W>WT)-+NW ,O>(]F,Z'[+H*FUWH@\!=,
MI?W0[,,_>GWX#TZP1[J/I/=K\[GU:_<+0+#W7_^H%^7:1]+ZY[=V__>,9_ON
M6Z?Y[:$-,WR?[L@'"(]UJ9F6,$E5'<M:XQFKKL8S-'48U?CYJGCUX303$CMP
MZAV(/NJ6A]Q.7=<7%\N]E,M7&4BE1]-B*H^A&91,8#_&-J&@_:@92\<>G8)&
M!;HZ*14D@H;EZ@1V:,JL&O<.XB<]]<-AF,%,-G/H1>Y(?+WQ<O9D"TJJ"XD6
M6W!E(B,L#7[:W"H9.-A5?F8BI "_,Q&TX7<FFVG#HUQL@@F&_D1%)T(T"O8[
M_YF<%_OU38=WSA/J[XF,^&H6 'RRZ(A:%E7Y!B%7,\D)Z?V$.L<<?A?4S^D!
M\Z1H@K7S2MSF<#B;S'3%67>Y"H]GGLG.4D7&IJY2R_;"DEQSN- @3Z1&I&J/
MKJ#1%O)'0.&N.3%GAB.@(* @I(* @I * @IK4- ,<J],-4?1!1P$'.X>Z$@;
M:D(T""R\W+7^FFG.?+NKZA LY+SHDJX80TH4A_R/8LP4:TYD/P..ITM'W%PM
M<B=22>0"4254D,!5>MNV/5LO4=JTNR-V(T@N7I?D/V"LO_]P4Y*:BP@,<\3;
M7UDFXQ%WAJHEJ5;9717WHL"P/G*2M7$3A53H3C$#A>?K<T5D%L *]1X'5-4%
MI/@8.0,8ADHWQ)9LW@_^<(.+#'E'2[0]:F)=%!#.1JJ%;I+O*=6.!%58FA4+
M!4FN[&Z<P0%1!9Q"< I=W#X03LO<1XR2MPW/-7$<M"IU$%2R))>%"L8QNK8T
M(:B$VET<"*]GZBB:056_A\%1N%IV(JB4I5*A*#4:NVNZG'N7"T[ L@4KH885
M^V'E4"%3E@J-NM0H[2X+(8K*X2Q74MU<+19WGH"E]*H-X6=/EOFJJ1NZJ>7^
M)JK'(?E84_X'%%0[QP&C3Z,D#J%046LFYUPQ]S"S0/=XHI9FJD$C_M&T?.$7
MMTY7*K9]%6S[&!WF<HR+_ "Q&G:(1P/Q-T6?T9/A,,*Y*1"8$P2&'9>I(C =
M#T)!*@M "HU*#'@R,1+ML$Y:C!PL(&2>="8^,R,ZU"'OOIBV_9X9^I%EBDA4
MX2 ..&A'T<-3,]B.Z:6Z-2?, !* $( 0@!" $( 0@!" $( 0@,@0$$D$]JNA
MUJ9@)+2-H3FA:"CL[?Q)*;XO2XUR22I7:GN7_$<@'Q?I%Z#,')2AX,U!H#P_
MU/&9*!"X4'%.SH%@BQ0>>28POP3<<[50G].=Z<F^[.;@XD5DHY;+5#]VPN*P
M#*\L(!@=:-J=^)4P$ ^[J"$@>*F2<_\K:VDF?QS;?O/B(7MN4O/0ZVVI97[@
M19!:C(L@ GYY@-^A]Y"R2?NH2\6*+%5B7!P1:#P;-&XQ_6N'WF/*R!%5J4K%
M<E4JEP]3*'/@B>(=7%NP=>@EIB-34XJ@S %DZER?J*?KLR@ZZ25N1(DF#!S.
M1-"&WYF([H,I=Q\LBWIF0G:(XMFB^^"5Z#XHI$ .9R)HP^],SJN3A>@^*-@O
M5S,Y+_83W0=S@K,4C/ALNP]RC4&N9I(3R@<K,@GBY_-X<1<@.A#FF,2B ^%%
MDEUT(,PCZ%+0)42O,0$%T6M,0$%(!0$%(14$%$X.!=&!4, A  ?1@5!@070@
M/&*6&SL0EB/!>OI6$J>^Y9ED^XE:N/W$KNN<)=&!D(N1>>UH4HLN)K_[XDC"
MP!(="#D>.0,8AFHUQ99L:5Q4EQM2HUB2&A71@? LI5H]7#%F/ZF6^,5SN=&0
MBJ)'W)G"*;K1Q?YP2N<B>4UJU"N +B&L.$;7EHOA]4.+"ZW#*Z6+X>6&5"]6
MI6)QC_9SH@-A2J+HT)(JI>,Z$-:E4J4NU1ME[F0,GX4%NU/<')NT?E!KJ-FB
MTV .UI3_ 075SG' U/KBU!<5:]#+<^O)M(5(\TWGB)*UY4#)VG**%>5*LE2,
MXWK,+_%SA+;:5K2Y0?VLT!;6@$KR[B(W.29[CG!63P-GJ9CVQ9HDUV.XP?.+
M J$"B0%/*2P:A02%Q1%BH"(: &Z?9?""&7'#1JP3H-^DD3Q9YJNF"D,\!VO*
M_X"":N<X8'JG4-P^U\&H^:X.M5G9Z-4"3^UK+V+ ]("80J?D3*SWJD!@3A 8
M744[-02F8M>7RU)9 %)H5&+ DXF1<"IU&F+D8 %1X4EGXC/$[MW? !5A2@U;
MP0VZ:.[(QYKR/Z"@VCD.**AVC@,*JIWC@&EI??5"Z%Y 4\7&+1-J.';?W&#K
M,:_60+&I&M0UGBGH'S9LB:<3NNKB,QV:+P9["],<^; W93 X2X7=O9YSC"DA
M>L2 )Q4](1<^+Z(G)T*%S[!TASKDW1?3MM^S:'1D YMPZ_GHR_19<UUDW[IE
M78=3,^6.Z:6Z-2>L"R$ (0 A "$ (0 A "$ (0 A )$A(!*X[ETOA'HU@Y'0
M-H;FA**AL+?'**5;W[)4+,I2H;1_>WHY']W +PN4H7CX0: \/]3Q&=L.E-D[
M#^= H)T]9]P2F%D2;KS]"U7Y\IJ#$GSK/%.Z1)5C)R .J_*1*NSD0PM:)0R^
MP\KT"=A=DH0,5Y2,*R'3N'U0+$@%N2(5"[NK8PF8GJMT/+0^6VK7#8J%@B17
M=A<,$) [5\@=6K,MDWR/2AT$GBS),0I."@1RC< M)KM\:"FXC!Q(%;#CRS6I
M6-E=-C *A&?M0>(74%OP%'VW+S:>#A56-:E4*4O5FLRSK&)NH@_.P%3G^%\%
M]CPP2$(M*C ?2!O-/_K#$S9^TJ/H=(1 Z(\I489#<S)5C#FP/6R> R\ %9HH
M  N@\HNEZ&2J6 XQ1RQS!6BO4L.F*O[%?(_8")2,-$,QAAH\;#OP <MHNDEE
MZM$;Q*CACS0P+8 K P0LZK; *,YH'QK&JU19*/P$L 8VFRIP%ALO#)2?/%)O
M;B*Y:(,R'8RM)6"V^Q2OMLB,=;<NZ;?^W;]N=QY:G;Z[%5'=3*JQA@R08JJ\
MT.N!197OU\H(WG%+%/U-F=OP7(Q<*N]M='+W22%C"SGZ'R E $Z," "4>Q00
M@(!/'Q1X$3YX.@9*!82A1C) O39I=7YK/W<[7X%8S2^DU_WRK=_N=GH2:7?N
M;U9[S*0^H?LN@J;7>B#P%TRE_=#LPS]Z??@/3K!'NH^D]VOSN?5K]PM L.?U
M="6M?WYK]W_/>+;OOG6:WQ[:,,/WZ8X<B8[MPF-=;*8E3/*A7&]N:IPBC Y?
M^$7-1-"&WYFDWU -=/L,)/FCE^'L@&*PFN*<\9$2BIE6N&Y7SM5,.!,4/'9C
M%.WE]T).-?X]FB4G9R C,!A*FD(RG*EDX&!'^)F)H V_,]E,&Q[EXC(@M;TU
M+@<;R\],!/OQ.Y/S8K^^Z?#.>4+]/9$57\T"@(OL0*XQR-5,<D+Y8 EU0?Q\
M'B^89,3WZ<+53,Z+N,WA<#:9Z1B4WTIB'GUJ@NR'>[(P[]E+T_$BN5QSN- ?
M3Z1%I&J-KJ#1%O)'0.'.[8XDH""@(*2"@(*0"@(*:U#0#.+==Q%P$'"X>Z C
M;:@)T2"P\.)W=T@<"[FN-AHH&_(_,WU.9#_Y+0*I;K[R3R>X[)?]R-&WJ=R)
M5'Y*Y/)4N"W5KEOOE>M"E9.Z(!<%AO61D[R@ERBDHEL4[;Z/ES"P#JOYP0%A
M+V'D#& 8*E<76[*E5<^C%J^>QT4!X6RD6KB UGY2+95:';48M3HX(.HEC)P!
M!,,5B@Z#8&JU.RJR5(E1N^.B<,&7@-M2EZ-X:*VV=7BE59>C(M4:54F.TU_R
MD,T.%^.X=+!LP<JAE:L\K!Q\YDG52E6JQRBSFC7Q^*S'&M'&)7S),5RJ-=KS
M(JH;BQKL A "$ (0 A "$ (0 A "$ (09]<RHQ@*^>UNF0%F6\UOF5')I@QG
MN5*02N7]B[2++BYG",D#6@M%0/+<,,=],L8Y.0;X[5,0FE\2#KAPD#U&=%/T
M<^$9MBE67$X%@D>$HT1O%SXA> F2<_].6.L:[XGR0@1D<R U2T=$6=/K^1(G
MCT3 +P_P.R)PFTW_EY@Y) *-9X/&+89_Z=!V1!DYH2I5J5BN2N4#? )GWPOF
M/,"U!5N']ADZSIMT5P1E#B!3Y_I$/5U;"]&X0#0NN(29"-KP.Q/1N"#MQ@5E
M<1E:" ]1>4LT+K@2C0N$%,CA3 1M^)W)>97!%(T+!/OE:B;GQ7ZB<4%.<):"
M%2\:%_ YDYQ07C0NR/_QXBY@=_L"X1++%=E%2X.+)+MH:9!'T*6@7XCBY0(*
MHGBY@(*0"@(*0BH(*)P<"J*E@8!#  ZBI8' @FAI<,0LHUL:E#DM2GKJ>Y])
MUJ8LE?>^X%D6+0VX&)G7<J>E<"WY>%=)$@:6:&G \<@9P'#_9BWEE%L:R**E
MP?E*M4,;M20$JNBKZ+)H:7"F<#JT0\8ZG%*[6EZ0)5FT)^ 97=NNBA]:;F@=
M7FE=%0=P%:I2L2B+]@2G%D7E0XNLE(]K3U"3BHV*5"LTN),Q_+8G<,L\[M6>
M(-J+PD6YA+,IVYGJUHC2P@(0 A "$ (0 A "$ (0 A"7 8@D3+=0]&YW*?AR
MH!1\.<W"<.A%:E3W+^PEL'L9V#V@LT8$=O,+3NY3-<[#U<!OP>YD*SB6]V_A
M7A9-#GB%:HKE0Q.&W1&!+-'8@#?8Y5M"[M\&9EU!/E%&B(#IN4K'(^*PZ34P
MB),U(B!WII"K'!'.S:9I0<S,$H% KA&X)?ND<FC?C%3]42O9)X5R32I6=J<>
MY*Y1 ;^ VH*G0QM?'.DCJDFE2EFJUG8G*5U:<P*22J5LUL3@ZJX_ID09#LW)
M5#'FP/:P>0Z\ %1HH@ L@,HOEJ*3J6(YQ!RQ1!B@O4H-FZKX%W-18C$9,M(,
MQ1AJ\+#MP <3:CCV32I3C]Z@[>T;TFK7L+A*-QV,K25@8I0PB>G])?W6O_O7
M[<Y#J]-WMR+J1EQMWZHI4^6%7@\LJGR_5D;PCENBZ&_*W+ZZB^,4]=Y&)W>?
M%#*VD*/_ 5("X,2( $"Y1P$!"/CT08$7X8.G8Z!L*LT#]=JDU?FM_=SM? 5B
M-;^07O?+MWZ[V^E)I-VYO\FX]/U]%T'3:ST0^ NFTGYH]N$?O3[\!R?8(]U'
M<M_L_4H>OW3_U<MX=N^^=9K?'MHPH_?ICBQZO63;ZR5:K 6B;6S+&C'2:7<4
M/SQP!>LM*D#974OKW(#'(\=;B> <57LK]9B7 ">W5][=5N=\WG<7]$V$OLEW
MJ,E&8*0;"[]7[#%YU,TW@OD)I#NEEN*@P=($*_%5<S1JWW)R<VG-:H^H#+F
M8=XO;8E-O\3,%5>.:N@F\.4#7JAYA[E&[WG8M$QNC,4Y9>(X>$-YAT^6.=*<
MC8E;E>N"["=N'=<Q=.G%E:5&N225*S5QA?#T@ @E\^T 1#D B..\M$% %(NR
M5"CM<6GY $#P>#DP0K@U570R,(\G<4SR3($(0TVG9"GU\'/\%U-CWGVSJ?J>
MM VNU1ANSO)<G]\7.O(ED9A[%:W$IOU IQ;(>H4=-XJADN;$A('_9A_PL(\\
M S:)R&LH92Y(D::A!NF1LN9WAYWB2U51PHN3D3- 7RBW>%_T):=FWA6+9:E4
M+W.'/N[U45>2!TF%P=AGG";^ 7HG:=HV=3B!=:X9*I2.NE#VOU#%IHPHW1&0
MA%$D2+/6CRDF6*0MXV6Y)C7J5>ZX[$)'3A^2U5"Z:B*03%#P\PK),U'AUP7_
M@W?%ASRZR5G&"[DW;<S*X0+QN>:U4%YND#C=T8(BC"!IB_I*4:K*>SAO+P$#
MN49?*(MW;_0E*-7+50G.'N[0=R;:O-?EX-Z<X!'LRG;O..8$S[GFI%+D1<;/
MH"ZI09(<)L'_II:I*O9X*_M<<\<Y%SIR!FB+;A$1#VU)ZN'ELE0J\*<PG(D>
M_INBSU@:O">[W5O/K)1HCUJOVI *%3P#9@H%RI$.6%&E.V*7FIJ&^B_%LA3#
ML1]-RZ=,U[K7%6V2ODXN2X4"?UK1A8Z< 1Q#16..AV.22GJ%2SB>B9)^;U%5
M<PCF>@CE/#N6"H5,GRSS5;/A*>"@!W,V<$8SO3D<8C?1U 6ZW*A)U1)_)=8O
M=.0,X!>*F>X-OYT"_$PMQ#-1U-O&*_S#M.;DF=IPX JAG4$":S44&5V0X4O[
ML>M1HC4:T:'3-=PRE1WJ9);L7"P5I6)MC]YAYY[J?'[HV@RN6BC&>3BXA' ^
MJ4[=4W1X^)DZ,\NP25/7S3>TECB!\ODST18175M$+[%DY.UB[[L&(XI'D\PD
M<E66ZL4]DA&%0.9((!</AI*0OR>]LW<_5HP7>%Q;N:>"F4$VRP__HBD#31=W
M5B[N0L.%CGQ))#X3%?&!#BW,7"3O0)-G?[T'<26DT25!]4)'OB02<Z\PE=U[
MP)ZG%V\ 4^T5:XSQL'L\PS0) R,<YO?. O]T:!L^99:$R;!T0J%0DBI5$1?B
M9.0LW"?A4/^AD$PPPE^3JU(Y1A^F7%=L<"7UPB?,"2;/GQNV,$,H2!]F!I\>
M&LW.J5@NH5>1OXR7"QTY R"&PO7[ S&-6CKEJM2H\W?5_DR4[B>+3A5-];.N
M1&)M!HP4$<!?9R2/+-E<90Y$BJ1*C3]6NM"1TT=B/2+:?P 2TY#JQ8I4KNR1
M1,*C5(]0T%?:$: $7B=C0O5>?Z.&:EKD@4Y-6Q,WEK.P6NNA*\MA9O+HT77&
MU')#@:EGU=:KDEQ+M\Z@P%1JF I=1#X84PEZ0JIU2:Z4^'&$G$Y[9ION!?4Y
M0>7Y\\,6=@C=)@ZS R/)_<RR@$J9B-B )5J0ROOD65T"*,X?CMO$<^B^\<%X
M3/+V<5&6ZOMX1/+HJ/8O*/@)#CY!1(+#I46_+W3D2R+QF6B+BP2')V4NLALR
M.J+WB"5[9,E,7ZS(!:DA;'.>D;4%6#'BLG& E63=WWI%DANB[N_AXMG".C,B
M%)8=$\6(*7MD"5R72-MG6I(;4J/$'Q]=Z,A9: DQ0K(Q<9A*NZ 2UO7E*/7L
M=#KTHB;O,WVEQDSHT.D+Z4:,*+%/%H\JJ1?_JDJE&G]UKB]TY P@&"NVNAN"
MXDKL235L5B9_<?&5L^SA'5V/.>"H!/HRQ]"%&C%BSJN-#Q8$S>Y62!$.@,;N
M]*#(=L]G[DT1./5P&B<8O =.4U'<BR6I4I0SQRF/RKS;Q3C8P5.+[N IC@4N
MV2T4ZP9R(C59T3Z5JI_G2-4 SRTIFIU'O5:5:O7='G5Q+N08J*$+K4<"-9T&
MT.5*4:K'N$YXTJ,A8"KDS&;EUEK.VW(O<>1+(C&?JB93,Q]U\XV@$"=X+]$6
MC>(O&*87.O(ED9A[)ZA7%U"9:@X,\3=5R9/BP!>L'&#?4E0*/_PN>DQF%?5M
MA/L?*/,)$,3NF\WA7S/-HFW#48P7;:#3C*YKE0I264XWTBL E5:4*MS0X" \
MB2C520NW/LVLX1@#5>:(/%GF%$:=,Q&-[<BF2$].$"T</ZOL%TKB";&?3\XG
M73&<IJ$N*)JV7"]*U:H(5UTP.AN%4!;-D>A,\L98H0SXS-YMSJ/&'AFFBO(?
MB$. 2S8+90IM\/XO2'J",)5<*DF%VN[^L.(\R#%00VDV1P(UE3#5.1P, 4LA
M9R8KM\9RWI9[B2-?$HGY5#37@E2/FJ$80Q&DNER87NC(ET1B'GV@Q/]?S_]I
MF3"N:I,1"YU[7=;1&WIO&FS\@4Y)QW1XLX'Y@^[Q085&(91WZ=,'#XT 11[H
M('4W9J7$9YO["QTY _2%DBGW19\(9F6G4FX5Y*T?U!IJ;EBK.\4]Y$Q\7Y1G
M: O+A2K6!%FNYYC#[Q[Y?(JJAXG]A!AOJ^_G$J2P@.\*?,-)-0?!-\FZ.#6I
M$D-IX0'(/)H'@8B8[YLFG^>1[@K!D3QR9"@M:4.D84'1S$)BL0T*'GA30)H?
M2(=2?8Z$M#AM>+%AKNX"M7K;AGON8/8=^P-38EX5'=-F^&),;O@OT2"U'$I:
M0BK@_P8(\4QMQ]*&#E7QBZ:AKGX0>/*)6IJIKE_3;_T8ZC,5>!3^&"O&"WU6
M'-H:C>@P;7]6(-!=*TOURNZ,C'//OL@I3$-)/QS -)UKPY5202H4+Z\4G!<M
MC3H(R#7Y3.$Q VC#">:%MK;"GJ%4IZ/8<Y7;FG9WQ#A,+EZ7Y(-;VE1!_M=V
M-YGF06L3R.8'V:$:1,DCNW0<LHM2J=20"I7SP#:?%LGFH^>__E$ORO)'TC)4
MWD^?@0X;2$K !ZHY&^CTL 3-_[L?VVT8-"'N"X7&D^>^(_U;Y48\=6V=]TKB
M7,DI9D,!]31TH:,P6R_ >5':_W;"*3 K$L7YMN[SMMQ+'/F22,RG_MF;3:<Z
MQ9N@BDZ66>-MPQ7P()Q%GO@EH?1"1[XD$O/H@XTL9H19(8JFHJX) LFA%JBJ
M/&S@1ILB8VLB+3LBHOV8N_E(C0Y-/16\!%9"2=[=)(D'*T&@,"T41O3OVHW"
M)),MBL6#\H>XMU5%Y5VA/XB1!8G/3$6\NNN8QC73"I<U<S!R(BXW7SI<+W3D
M2R(QI]XS:KUJ0TJH7TZ-6)1111MI5'4OQVD@K S'M.;$,<E(^P&?*ZQ )P_;
M>D'AL>(BX11^^O<M'"9XEG@47-3#LY\#!$2CHNV3KV\^(O'<XJK-">N^G7K-
MWK)4:IQ'N$Q@. L,RQEA.*NKU3P@EQTM'YR!J<[QOPH0+3#(8[?3O^ZU_].Z
M)6P4PCYX;'YM?_G]EJR/0[XVGW]I=V[QJO1'$J#MGS-06$?SCRO#)SV(3D>(
MG_Z8$F4X-"=3Q9BC7FQ@00VB6/ QH F(_6(I.IDJEH,WMAUX'""@8F=Z%?]B
MR6R*@P>8JUK#P[8#'S!PW:0R]<C]8;3P!QJ8EDHM!@=8TVV!T9M1/C2*AZ!"
MX2< -_#J5%$QAXIA\I-'Z$A=XBK(Y^/I8&PMY[-="[G:*8>6:8*DW_IW_[K=
M>6AU^NY.!#9B2-'-!?M0CS5D@!)3Y85>#RRJ?+]61O".6Z+H;\K<AN=BJ%'>
MV^CD[I-"QA8R]#\<<PAH8D1P2[0X[NT8!5Z$#^:,?19;_\EV+--XN0/JM4FK
M\UO[N=OY"L1J?B&][I=O_7:WTY-(NW,/O. ]FLV$.MU^JT?Z7?*MT_SVT.ZW
M'LA]%W'4<_^"V;4?FOCQ8[O3[-RW<<9]^ !GWTMWLI$D<L5_9S:AEC9<'&2U
M6NA6Q>>9K1G4MA^H/;0T=HN[::B?%5NSNZ,GB]H8H<9/^S#B9]T<?H^O>\$K
ME2F>F=:,7J6Y\""9B'Q#'EJ]^^?V$^*%=!_)YV^]=J?5.P4=$AED16QAV^4-
MX[IL8[QJL$@OLZ!GZC-V,Q_8QAC>2$3!/ ,+CAF@HC4U+49;\@Z37HN%C_@&
M]J?\46+GD_?YO7NF+;[R/GZCZY^8,\O[B+F(O$]GMO?A>Z+!>4A>='. !Z%[
ML]-"(:=J@$.\>(/3P9^"0@,P ZW"<*<(&(4EP9%HP\3 ZGP9$Q@,WD$G&KSB
M,SP'IE[;-+2_W1_TZ7!L@%WZ M.6:^6/Y-WG=A_F4:X781Y377%0KY) C\(I
M@,XS'),W2F#[9R/0FF86E8@.ZAV<SA*Q/8,39V;#R<;&[H&04+YJMN,-,+#P
M:U@,+$R=#1W8=,WP;AB%'EY.!HDRGJN6^4(-,@7][@=LRO5 0:U@ C]@@X[,
MEQO2A4%MCZ+LTRG68;!=%8,&":_/P0C6J*'"'XK-2&D:\+<W,]="QC6L;[/_
M1J"3^6..,\)QWD )L;!J-KX(MPU7.9Y--%5SYFOSPE]:+XJ!*C>,J,,*8"'>
M;[^!T@K_ZJ%68WOYUX8":%00%S9 68&9#.!W+Q:EQF*^;YHS!G4*WDQ G<>W
M.@Z<CD/%&L"0(]-TIA8H6.Y4!IY,6T[E;S8#] .P-6NO@#9@BEOR11M1TAO"
M3L&J)?*K:;-./N17JNC.&%X/M'\T39BQ,J)>SPA@A@F6N5#T!%6RN#Q^*MGB
MFC*PC2Z[* "<$;(&T$DQ'"0OZ&XF; K# ",7TOO!>ZJIOF+%.94\PXFB6$-6
M=^)/8'>;- %DP_E"!#TTGY^:"W'AJ<G?;GH@U2EJSLS; Q][;Y8"C(3TMN@+
M LZ"H1:38+]>E8LPNN,)&W_\@+AK!6: %)_9"%:""5K GZ@=@,H7YED$L08K
M8IR&AM<KA8T!(*L:3AK@Y\(9'D1^)F@IF(S+3=N!G\"J/$GP8ZX32U&1A<@[
M_W3[9,\6)%^S:>$;"BHSJD4S5#F]7W1_);#"]Q+Y#E:<P:9GNLSPJS_W)W_N
M[[1?GWSI> -DFKIG/SP[F+-=C"/M%J_P5\JD/;4FU]\U76>! Q@/1 6\40&N
M-JWO-O#R=]P1X,D9+!?4ENNA@K@;DA<E2:N'=Q;KLN/,W4LFT56*MT2! H"<
MQ0$$^VXJ< A- ;[6C GBX4(@P72M&3N[@F>/!!+106,4MGK"Y*]C2F3LR3I7
M#$^HBS8X^K"?NH8O&&CFM>W*/5T9P ?3L6)-E"&=.:%G)U1Q_".)0=P[2)#F
MP>=&*$QM.IQ9<'($CD?; 5WDQ3U@'4"6#;J)JWCB"0V<9-GL#>P!RQ<BP3>_
M:J^*I<&.N',U ;/68MLT0YUAOCV\8#GFT)IA\31[K$WQ!Z,1/CF8:3I^:^,.
M.51W=X?]99GF!#ZVAV/3U.$/3(I09BC_< -P(JB"#!3+ KL3M\O4?9UAI#%Z
M^@(,O[0TF^EE^+7BC'6*B%\NR#W*5O  M#)1%K'3%'=6IY[?!:8Z\?9F,M,=
M[1J=0S@_X&P\V6Y  ,-1#;N)9[+D:4[>J\<*R*D!GK;>60U"T9. <NVC#6<D
MZ" =E!Z+GS#N'5-]BM@;P-_WW=_:#]=RPUT-SI6)/YC9@.)6LUEC/IDS!B$]
MG5DH^%S>_K!BJYS8/@H5:NO!*S0 !K9O&0[1<0?+>4+" HV.M8G8KS1C1M6F
M\_,5_N./@CH:5!K964O%&]+[]A5^]#M:2KWV+YWV8_N^V>F3YOU]]UNGW^[\
M0I[ O+UOM\[6@-JZ#>AZ8?:NVQQL:?%ZOA9.;/>Z',)FA)4.MGNJB,W:HAU3
MYC>UM F< @J(;<=UE<9UFGK2'KZ%TP D$<I=7Z]!G14VR%)9+62F+8)&!$J.
MSM2W(9WB4\IB#U%DP_NG.CM$(LP9P$^3$4TA[WYI-I_>N\*=S88-QQ11U=1U
MQ<+C92%W84YP,KBJU@R^P;F8,SQ/"5NSA!(3:S8S)1('MF;ZXBQ\F>F,]O:*
MMMQSSUC_R/0K7##K1;-M9O4'5-Y>Z]Y7>6_(/6B78(?!E!>W$3PCU'30IXW6
M^E W;=0S0*^ 1W#+%EL-OXRDQ6*9$3N/^Q78D26)X<PP06G!'0QN@CV#XS]R
M%V#3==R^%V;.#ZBN47@K.[%PO<&ILX-*I7_-8(KXTHGRG;*'@@M? @8U*-@[
MG2JH(&3HC\^:YT IBB2@14<ZJ)VPP: 6J?@33YE!/M3<S"# H(L(#,G/+(LI
M_<%GF:=%\CG(G&H&[C+\#*8,&B ^)3'*&!052%2I4'$8*9KET\(EC(?V(*V8
M+T-C*K/+[S?$7<YAPL,&&.G E<!O0'.<,OSFSYDQ7!JYJ$GYKXY\AZOT4#('
MC950 _GC 18V&8!V6I(E@H$^5TZXT2(V<<"BZY#"?0CR%;Y),8P9VUY4D5%9
M>T2'C%RX_E_<GU?-G-GH_M'TH T,_(V/-D&&Z40NLW$K$G.[3-Q9!:5!TQWB
MF0VQE O_0N>/CF8P/FO#+U?$HW?&^/-TV7U!*U^.N_.V&650105]E4DN;)3G
MR3%_S_R?3%GU'AMV_Y5:OD4*![:_\'\"=N:,/7W,:$SS1+4?I#$SQ&&$[8.-
M9H#J$4@'6#@C%GRN&'//D%B=R@DUUVP4HJ?E4>=&H#Q.X4XMJC7"%0."LV6*
MS_P,U9Z50/(!&H\K*ESN9$1DT0&4,^BB>AN;>&2;;R@K[=D #$4-)*U$XL40
M.O1560TA@(4)[,.XQ)OW<O"%3>\F(P0M3HH>"</7CX9!RN6>QY;9(L.%D/0T
M=ILW)HOH&:"9EEM5;7T=S<5I'P@JG@?C^8JOM;:D(&0GBDI=7R[LP#4[*1CB
M+?><B>1)>!R6SP(GG@*/JA$ZA=GO@VJ-K[%$30%U!!@?3R)X/V6%ZHBKHOK'
MOGNZ4G7#88>*U&*"4]/6-G/:23COHC-/&B+S9+=X\EQFRB)#+^@VBW"HE<J#
M<DG)Q*'&MG)%<&=^IGQSFX&TX#N4$]R=(R$?%DRX.UI,]SQ.B7[8N-DSE\]3
M=O! P##(T@-B4=8VW"8S>^&0H/[NN,YUVYY-W&X+KE-#<8\!INZYF:7+0X E
M4K@.CX#]N*99[I@JT]XB,QMO\.*/:XJZ9\V0F<NJ!C.R%N<42T4P)_@..["8
M&])%IQ(<7R\FOG& SDP)73:@6^K,(X.V]>+Y8"Z%,S;9":DK;C +'1+F&W,F
MH34WQ(BK0V#1MOL[+PL7_W04XX4U.W/O D@8F0#+C^AP=MN>F;KZB!_58GW<
MV3\6MPXDURN!\W5_;&,O#"]U0WE3+-6=M@F&LJ/\H%ZTQQ52+WC\ZYHR6$2P
M@'SH0$%[TV;&-KYH=1?PM ?+%U;#(G#T!]JC&.)A+X8O,08&FH!GM8;!8BU<
M8FSC7->&;6+.!753?@**@^N#<-66,75)Q'88<(ET^'.FOG@@&:"_DG&!8ED,
M(LM=83Z2Y5X&UIQ['?\1\?$;[@3Y"OL\LURFXDTLARH/X+S9M .S=DWI\S6H
M9R V+,UQU?27F:8N!,:2BS&.O: 2YKA@(E'P>R^9BOKN=+ "AM3/9E@X"X=4
M>_4"GHKA8A]5[RE6U4 # (WA$4NC\9EA3M[!D_0'R"WVRO=++QKSQ "S>WXJ
M3!8A"N;38!8*\OI$L;[# +XC:S'<\MV:*VI1G09Q'+#%8;K.FVO5L'=@@%K#
MX9C3P)U!8$L(GA,WY&O$PTRRS.8@NA9)<OAW:!7>0 MI]$[#I:IT2ED1$@D^
M@$\P846GZ@MUY1)\!A\RM=3?/IB_*TW?::_OX01UTTL"W[H.Q@6=56:+#EA&
M2H">8PUL(VLXGA-7:GMKUD% ZMYY,)TYTE(:,E>A9@$-G#>3K8 YOU7FF#0'
MF'# YND?FV!9.&1F++^1W+6CQQ*PP@+C>-*[FQR8FA1P ;MI=WC(H2'$TT6
MP#V0(VVPE5M,Y4RN4=9#EX/6[R<FOKE?$%A$CKPGG?5<_CDS65@-Y8WM!N68
M;'19U#WI,8'$S?;Q3O" 7%D<X)E@<4_;.''(G 8I12Z0TD8AZ"N5(+X,XN%X
M*<># HYJ[$$5+)DA2VRT6"3&_9?DQF[A(/UK!7^(-EL# BE6--8^KOU ,Q9(
M7<P"8T NBC^RR+$7NV&SCY@J/C,T+<L<H!O;C2P%OO7.*CCT%'=ZLP$81BP+
M79\O@T9@YTQ\(U!PR2FXI,0%EWP+G/(AT-FSJ6>4#Q;IZX 2YM!E*%/<(AIS
M3W/P?[;,YO%=QZ[BLAMO>;@EMH^"O[ \?3<(IL;Z9=[9'W1995E:AJ=<==V5
M7(L/I\I\H<;!AV"SJ,S:-E@J^'2*6=,3UVFR5"8'%#.7%[2QQQB@AZ?<9%?W
M4QNA@6FZ@4N=.3: M_3ZXLL$#I4]\^ITKS<2.D?S]WX3%RR"Q>P+]"W!4Q)F
M]F).<L ?B)#5'#<,[+J:V,FJ:_ NE7G8O/P>+RO&TN"L8-:>XV>A,?A;% U8
MPQF[(HO:Z$3TPCF2QQY@"V)@RO9-I(G)+"!VA1IM)-5-8W=_V<,L/3>9IK!(
M:C$B<VQ89@UYHTQ-"&U%[CG1#RV3YX6\XXT'0RT@EU--B/$B D2C1J,Q2"Q
M%)<EF^'3Q_6A>-FB2M"C'TB-8X?0T \IZRP=S[O,YZ!NJKJ^=%UQT_[Q7/0N
M;P:26U63Y6TZ?KB!O0G=]<"Q++>2J2ID"+,U@4;!.:+S9S$75#[P_WOA#S8;
MW^7$_+[+*2W>!;+"9.H[NZR@:"QASV9NLH43WW5!LZLC7N3 6S9+PC2NO:&\
MV$OT--N&[S5W(P;L;AAJ9W#*![;3=]Z@DV_HF/!?WSKQKHS,\;8*?"$%_>Z!
M"2Q=\-)R)FX$X@TV<<QN(DKLO@[J<8'9:O9W+Q[@Y0*PV(*_3H]:!.]GFA/\
MH6FX5SA@<8_,U8=!$/]U#!!O8]@MC*#\<"B^E\U"BDJWQ2V]]X9M^4/>NW&3
M+Z9MDW?WK?LO[T'VJE27W'NQ[)86SMH+<'AQ&I8<[*)U:FKNY3P;9*KGOL*(
MP<QBIP5F*= WU\DV@ /$K8J!MS%5C"*YH1%W8U\I>3<U3?V]%W109RR1E"J8
M]<NB6RSCD.6?+#UWS=X]*16K+':"O.3!FSG8_!"*ER[, +[8[)6($<$L0Q=T
M("O@-3I>$F67\Y8'(M.[I05\<#8!?*#%*"WHNJ2<2^_1S&&N/CC7X!1"712,
M&-@*5VO$'<;1<#+NC4:\?71#3GH1+BHY)!B)Y\8?F>/T$+D@\D,.S0_QLD"B
M\D-46BZK5UM^>QH% 408RSG3)EZ?"%0*W!SKN9?,C'<;V37&H/!:"$.,N@Y
MZBTEG^\R<'4*O+EK.FY-A;5W:"P2Y57Z#"LJ3+ZZLM>[Y.]*=C?0&WX>Q:]*
MT4L&AR$<"]2-30=/?,T.I/LOEH"/@!4Q]RYG33&4HL[H:F:I:XGXI_<BMN*E
M?@=N?@ ?Z'YQ")3FAO\>W]" YU#XNC<OMZ04D#=,F[>]B(R=83QFT]6PVDIY
MLMYP3-693KNCIK\(4!C<T_T+6P'CX..-V.WB>+U 5EKB.=4X4=9%1<=JO):7
M.XO:^<<&JE0P?^/GJV(*SL]0I:15>SSC,DT(U8R'="GY[IM_O^C]ZOAQ^G%F
M7B=28'H_&J_XDK*'=)E72/%9K;RY^>#FJVIJ*E51_:,TB;*GZ]ZXH#;Q8,X&
MSFBF^WZLI:?.<RNDT7JU*!6+#:E1VUV9EP.J"CRMX:G>*"2/J".;Q,M2N5&6
M2F7^$,5GX?7[I3CUPZ&G53%.I=.LL<G1S%%:L>!\'F@:ZJ++QI(?5HRY-.2L
MW*A)U=+N]O(Y)G-><%5,%%='2]M"I2!5RB5>D,6I!KNX0,M4V)GA1T580LKB
MAC '[+'1E#LUWQQN8_H,]6X31X6N0F]GJF@77"I26RJ6JE*ANEMN1]F,^RB-
M[P7P3@"\4*&+Q(!WI%@OR66I(>\6Z@G!CD_->%^W S_-2K/I47JT)A.ZHQ;/
M>$Q'TLH-&?28 SL$Y5>)S0O60M?4C\#:D<(UOL_KA%B+C/ASDC.237:EW^I)
MXZWF0KT0\KHMVE*=93)S8*=9DA=+O5\D3 *;N@TEAGA-%B]84,>/_*/YY";J
MSVPW*="[RGF-A4'=O_ :^[O']F/W/9E09VRJ-R0XH%?H$*\@3=PJ<S#42#,T
M>XPY>R96J6,)9LK;H@"">Y??\Y:1(<JF1<DGG*67RVFSE SW%: RJFX.(LLA
M4R^H"OJ_J)]-LFS@:$95B@BFWJWG;K)L$\WO;L*R1 :PIP!;-U$SD(6WR,=4
M*4Q:9;2R*&9+KF:HH%;G9]*HBT20,?5Z8BC#_Y^]-V]N&TG2A[\*HGMFPXZ
M.+P/]ZPC:%GNU80MZ2?)W3OO/QT@412Q#0)L')(YG_[-S*K"00 \ 1(D,;';
MMB42J"/OXTE1CC(VG+$_P[I7WJ,6K4(Q(I0D$0NI!UCVHG%"1=S&*8&@(JP4
MKY[EE83AD8@&9<2^L'@3-BZ+[X'6&H'XKO&[I+(640/+/T)GXK'(8[&RY6^9
MGN\@%DP*Q,AOL@[TD3^\").KW^VG3H6G,\]><7^/%>\=[&K4ZQEKIG*F+5H7
MX-;F3""JGWVCPD,4:R48KE@VK9K(CLIE/YB(O&WIP<I/4LO^'D0:252DX]^@
MTB7%9=(0HC$(/M\4@F@.0M00B':_,Y)EOL=BOXBH8;A6#6WR*Q-+!+GFC=1A
M!W)W&:TG;(%4(_T-O,^(QOZ^<N1=E\;'A&^FD1F6;#N. OKX#K"T[\BQ#3\\
MCA0-_WAE4V-L8I^2C0IA;FIC,8I!#)F@?GEJJO(XI"ZLMJ9\99K+IJC0C1E.
MO)*P2@Y58H(Q\!_ZY&8GX3!LF<#/FOA8WGHL3!^\^ @ "(KR8(V1"2(")43^
M,W:4T14*_ F&KS9<WLS(G+.7/G1=I;/AF\O2YBLVWC"^V%,5,&AFO> \(NHK
M09JW)U?8/RMG03W>?P_G,!%1$WX447X(;D,H.Z;)?RX:$)$OB*K#YL%&4W0>
MIC;$8.M(O]TD6>5[!EIA80_O%;$9?Z]8M.C]81Q=*U@#7R7%*QC5",MAKVB.
MV=85MV CH-E\G%;P]F?L4YHQS:)1.;+)1^R,;,B_?#C)R8)Z<A#U1O1QR9.$
M(XOVA,>.BJ;*/(;K5V/0/ASF+(ZO'G0\<WP>Q9^C[(RCUM+D-MX80\)%H(U*
M$75!KLN0AH018]+U1.DH0%E;D >H$2X2G#8IAK%CD*N(A"D+Y?$ >0>5+0#<
MY(4#U3EC U7+%]Y8A33.9_KP^YYKBU#'!,7T"++T0W$(18Y('E\R\V<23QY\
M38?H+$2@%>2 :A!A-X+'BAD_(#P\WPF!!85')9^[M)BQ9H[%C ;JSHMN5 YF
M('O#$=,8?&J5#[\G/B<7%< @Q-_#3Y[V[#M\4P+'>H1 'PB@Q-\0PWN*3;IX
MU0R3-_\CT!8_?D*^6KZ?#99S0>0O.U9H3!4S>6<=/R)T?"1>(1^&AU*+C!)"
MT10B3HQ!L*[XOV@^GA5,44C(5Y)?=!'X*QD/X)?(_6V7DZ[*$6BN!'X+FFK\
MQ\1/HP@E+TGLU'6([EI0#0Q!T/@L*W>)&W%%B,5(=!3P0'24@]@QSKF4G?-\
M,2%@)ZPF> ;_N(PB47P@B XIOTK35UW^0KHL\%TY:PT-8:1Y8'W>C<M(D$L9
M$'Q=+B[80?;:).0;;\Z$?P7 :0LYSR(2U#IC4S+H\7[@8")E,RK3:\[$8D_2
MJ!QF!E: ?\&!LW0[Z%"3^(PAE@OHYJQ TB >^KI&#]#RN*QY--P_'X*QH*N"
M7W_@E_^XM]AOM!+W&ZWR#V'3_[%T _RWD1C3 XBH:) )G *<5@*+NFK^]+'=
M302:_DY];DN0-C6%GU)*F&G/0^KV]CHD$6_+^9 :L4/J)J-QZ8=T.6K[BP@(
M\* ):6"*/'"4%A[(2.,HA+_DQ.(N44LF$[7;JPGDULHBD5#@])8$#B>7YS<[
MG5RN;=>[GSP! ;A;\E,G64?U=SJ>S *%^OZ[6Q:G.>XNS@B=#$:0>2A$<'"7
M L_*3J32WHU4NGL>9CM"*NVB2259^[2:5!IA^'CW[34.M;UN9WM:J= J+AVM
MHE&A5>R,5L$Q*=+& [>TSJ1_L&DF0X%\^#O.M+:\$A:W)(IB;W[PY,L#SWV+
ME8M2EQ/Q8L2IOP6G'HG%Q?-A5#^B(G209BT$LGC$52<_6X(GX3?%(Q?2.Q=Q
M#CG8FU>J2+R0&.Y64*FRX9,YS!+54<CG8'! CK^*CAT)AHTL#:N2$UL%=@FJ
M&8[- 4?K8\4%:"VT*'#(!8LO0GM!5#%/;@R1_ DUC?#$H@^4*.LA:A:L$(\D
M!-:BH#<A6HDLF2RK()@I_G+4?1A_BJ0DY*L=%J8JQ/!ZG*\ABS*R7=:,6@!<
M7+!/6<ZQLFZCF\A5?X;CP M\UGX,*5D ?Y$_N^$W)2HCL+B<Z!'L LE+\E>%
MM/@VU6Z[OV691S=1XE;@!O<MED^O"5DVM=\]@85]A[.6&^WW9Q\IN^4S<IYQ
M1D[9-$RBWX<O%M9ZDB$RR061N409PWDH6!O@-D5@]OB )UX^(>>'\%K*Q/BH
M"%@?P5K#RT:4R\282\9;179)Y":CM1',TGA209.)+/JR]L8AJ_@@K* F+[I,
M?&"@RD#".UC6X/(P=RP+"NO2LT^(X/A JF/N '1N %FE(JBWID0 $6-U@XB^
M25MG%IL8$51PE4H;>9+:-/YD5+NB6;PPD)<YXE^C*Q^QL$HP)8_]9?CTB=+)
MS_8<R+C7KM/4UH"[XH-OHK.II$*Z8UYX!)&]AQ,P$?0^4#WZMM5L9R_,\ #%
MD;_#EJOW"OCRRM,4[KMLLBW1YW"C.9A0<V'%M.#"4'?'G7'W\*!ZGX"GQE02
M+B@?>."=27<$9J?B3BD_Y<IJ-<+J)WQ2FFSO.^E?'?%9$&_DC")#@&S!_!H8
M!2->C$X/YH#T/-]&@^)B +D14UI8T,+BQ_S>9\/TO5 B9:PZEM$6TI ,WA#G
MSP!SE1=J9"TJ',\A?D]?H2RF[^"7@SD$L@Z!6^TA-+@P3ETYZPXE+1\^.\$]
M"<DB3@#KKD$L4I4=E\;\[(,2%%UL_>;AB<K0Q(20P(^(?7A$]XL?93_&;.Z%
MX'\6TK[FT>RZ!9=E6#M-G=:!C*:K!A^ +ST\;(*[ #%H8_D@.F8H:8-#14!E
M7"36&KIL+/'.@Q$.W$4@X4WOY0Y 6#:Q_DZ"85*P.)OF9:?O _X6G?X=TA\&
MD/",4#6GOR$RP2P4]%'Z%.BTP4Y#FLIX(HXKIJ?@_N*^HB!PTL,34TZO#)_(
M7R*S^'RJI#V&D^7DG/'"@%"]J6/[+T##T4F+46JF>8E(I!P$6I7$.!<@O9*"
M53X?QJ)^,F*!./GRB+BL ."V0U@=(BF7"9E*S"I7/"7M3\%TA\R/A5B$J/@T
M7%[$0F-GXJN+\I@:D(8QN1(KA6^E/&3%-B*,RG\/+.E1*80CAJ81K2Z9%LUN
M_<B@Q =][\,:=L^V@D3/$*-H2V;RJ!-+"$3>]EF\["EXU_H4\W5XF9\#\2JC
M_IOXK:3\W40K8J>>T861P9+$KDN4)5:C9A]%-\^C$#Y]'KOOUMMJJY\2G%@G
MD"B"%%.7$<$:LG+F@?3R/) G7-L]%R9['TJOVU=[@^:.1Q(]AIB06YUG[>=Y
M' ]2%@[I8/8^D6Y+[:4D5S<[D-!:6J:2\.L1W@9Q0[UD0^5A23%5<GF-7&YO
M*)<;2U52VU-;^Q""N=[/:#7+4S WZNT\SR)'R=SK=M1^2@%4T9*Y4=]7;;<+
M$\W]>D>MMW<5S3C0B9S>28ID#@YL=8W#OGJ\?<YR^NG"Y/1]TKE*<T/$^2T[
MVR)G&#ET\E' @P3O:SRE2NJ-:A3[B4ZJ:[IFN@Y.*/?A=:XW'[#+TUO<4OD.
M4#0V?]Y;;#_JO.H$Y3?=GSYV:LE"-&6&\ZY%:WLV R8@<[;>:_O0>TW"G 1[
MS>!,&N@694'X358P.ME-K8Q\CS^"_1"5[<',J8Q(%,8 *2(4!M^TM$%TP1MI
M9H7HU+\*;!01H(-G)Q]XP(&Q62,E$O,0PZD2RT%BBJH.+5U$*:OA$J7#95H"
MX@_@\[M+.,^##6">0XCZPL'OX_6FT3+3E9#X1P</K2CGV)03D\85L91SWL?V
ME!.EOP-0T:9C72H:.DD:.LCPF.1,HO(,<*GNMQK0<WAX\T1]S,6,4=F$C-?"
M0"<<,SA/?IQ)?.?LMKD=RU<5%]8(7OM/']N=NMI*J=3-Y3B3 ..73@Z9C7+;
M4T-*9]RNQ<R=OCKH)D/,Q[Z]DB*$!V,=W$1%!D4SKS!9%11Q?"BI6#PVPGY^
MO-/H=!+"-'))S_8P*)MZT S]UKK6YH:GF3P.>BU10>XG\:R>MYL,_@]S;%US
MIRL9[JITO':A;SX ;29$>V&TN58CG"AMEM/^O44/ @=S!XG$B [ 7  "KU%R
M -,$LM=!>=?L_[UDIO(:KZT$#)F#7[E^K&%G"6287^^]M<1Z8)D=53.D.J*7
M)+,KJHU2;7<_JCV4SB@#U9;3G[@+>U%$-XCF>8XQ\GGFE(8*A,7F"#3)G)*-
M0,X>X5*(V[WN=;G$9QIQ&""X)?3$AY&K>;9%'4;D7DH7MTF=)G/BL9P3)K=,
M:FOD1FV'CPNMI+$RRO:#^0B_[]-+6$6.UGCGY[;=2WSS)5UQ.>U/WDQ=AO/9
M2L,?FT0/8A6TEF.'4J$,N3ZY(W5R/^$%N;?4H4OWF:\=FMZN45?KO8[:K"=A
M!<MH(%1D71ZR3J"][476.QN\F63=.!VR+J?=*TK(*^XK(_<ED+ RN$]<XIH.
MDTJW5-1=)NI.8"'E0=WYJYA!5^UU&B=!W>5T6W8*FX>M655PY9(\[PM]\R5=
M<3D-X1,-KI0U?9*=K4M4 -+))W 0'?L+:NW<TW0/245_>_<EDJ^KU^I[)E*J
M9%UIDG6)DK[MB6V?+%T&L2&-)9$P*HORW(,6966?3&'=3.*\\Z.OQ'5%;_F+
MZV9R;L(.Y%8)[.7A.FGCF:IQ34<>U]3<ML>\&M>DQX<RI:"<#SH-O3_X:<5W
M\\5!/QX /B)W3VR<>H 03'/'1B1MG(>.,X"LL6$: 8X2(KJ((B9")TZ;\1TB
M*\WX7,Z)@(+AT-%N"([^X?A020FK/H1*&L*=ZPFTNQL!-84:XCH$F4HB*Q4
MO-_4.]UFL\)7*B)>=FHH.16^4D4Y%;[2R1)+NOU7X2M5-%0.&JKPE:K[O5!\
MI4/4,<B)1F6I2%@*U$7(Y+P3R-6A5UE[6B67E@;X3Y:4 A76V7X)GP1:>P5V
M=@'TD$D.B;:6"NUL]Z3X.:F#,NG@L]:[%_KF2[KB,II6.+<\&'U:%H>G(L>S
M/^CJBDLG<0Y4UI?BS/&:;#GF^TI"<_!<=AG.L<P$N[_QGV_S[]'Z#B^**,Z8
M'#?MABUY+WJI97W$NBR"2$[EF4O$?"K+/I5GGN3QEM%F^NGCC1AJ.$F;Q5P2
MS5!:G71NV[W$-U_2%9<Q4)3BMLDYXV4XLC+3YL8F\54)]G*);R[:I>D/DN-0
M]JM?'U+U_J8.#Y\R3=.I)<_N/>:]HP[J6^1MRR@YCQ?PBHZP1RSXDO#!Z7-@
M)4&K^[L$T^M^CN*VLKS.ANXN],V%3W&L)Z+)Q[*\!,ON;7@U&FJ_7UE>.PK.
M!X=-F.,P7:%+*0D;B =>U "EA,@MPT"BB@H.3 79@KM7 L$=2 L2%OO+[FY+
M[76V!Q@I_6BN0\-8*\$8%Y$35IY*6"M2,3*F\PN!_RT-N'6EI"Z9MA,ZZJR@
MK4NO=JJ>BRK/6KVYNN*3,V,KJ/R*A*LW5U=<YN!I!96_P>MR:<8?U!/E(17\
M<D5PA<$O#^H)8,T*?_DL[,H*,/]0(KN10,ROQIM4Y%:4P&XD /.K^2;;B^MU
M</EY0^X=%2E<H% S#O'M30F/V*)X-'81S6W$@#<T4R*&P\]DS %SG?!QS5.F
MVBM31HQ9"A-I5F4"Z^$]2/ /*Q''" '&1VRL^2YB(#/#41CO7WK37$6#]U[)
M1.YA4<;3H>(KY.[BX3)/!7^Y0NZN*&<WRJF0NTM +/GE?BOD[HJ&3A?9N4+N
M/N_[/4'D[F/&Q:IVF0.U6X184E@_&RO9S:-0-R5B5D"'1:_;5WN#\N'17NB;
MBR?:3J%$>YBVH$ZOI=8WB,:5.E%RL-1V!5UQ,.;J'D<CY 9TT%2[];;:*F'+
MW86^N7B2[1U''^1(LKU66^T,NJ4CV7*Z!^6&XZA:+8 I&YUN\^"*1"1;_XC0
M!Y)'#OS9J?<WLM;*T))1\4!Y>*!U<,U4' _4^_63X8%R>C'/MJ>9\7RZ3.?S
M#53_K?Z;UW^52B^45"\,FH-#FT9[ 0?V^PVUT3\-P5\1>5F(O%4_M.VS%Y&W
M^KV-// R$'EF=62T7NZ4ZB.?;_[W^>KV[O/-W?,'I=W)?.^=[<'!RKB+JM@\
M&*\B@001 1W,73"R=&4>8$?Q$LF)J!4#$HN6BF'U9:P82$&Y24] VE(5K(ZT
M;*J<Y#65AD7/&8>D&P"]PV_E7!PE/A='T5S%]<=3_A@7O_1F^Z:NC%C<)*SQ
MBTY<YY$N>'6195%%E4$1P'PT=<+U;%#CDB'C1B;8_1%)%Z>Y 'QL*87?:&U;
M5S.'&[\:.4S[\TJ;P$,^*)KYIBW<GSYNXIV(I['9QW]JRM1!>?4ST"ZX#G0+
M0&77* HI$Z+!@_"#V2+AN&6Z@TY#[P^X\(;?,GWHR0+>R:0]'A50>A$N4-9>
MT%'R8Q(_R5MVK7W](WMEL'WED8WM%]!"<$CQ%1VTI#HLH _AKI/876+-D24_
M ->,%\_P@D\F"-,LP[.1,#R9.];F: 4X/DLC!GA[N]'.BQ@VU22_,\7AF_L/
M_HW?$,AU;3P&$:=98Z:\&:(*_XMAP0^P]GX(O_5Q Z Q$!)&<W17^63#'\J[
M+\.G3^_3/W%MZ\8$K"GBCW?_]7._V:S_,GRZIK\U?GFO/-MSN(]NO:LJDEJH
M;A^9'0T1ER_F&I9OP]VY-25U_6]3!DJ%*? =RP75!QK0GADNJ*(7VX9U@/YS
MF?-JC.$ $;- /HXV#O]'UA;O) #18S)\,5=TEFN W.<;@&^"G0.*#-[$?LRQ
M30!^!%H,&Q0\D^M']F,\U:P7)I2N[;+D&FJP;]#6("1GJ)'E+IR0Z.C;X_@A
MA*N&]\^9@S8?K3+LI9A08,5C<_>#\LYX#X2.2YLLY&;H<>_<]_R!6O#(7^#3
MRQ\7;R"*L$= 170(^.7 "N#/HR_#M\,-45TZ7H4PC>? = P_]OH>E )PD>9E
M? @/=,N7H[GR#AZ<017OX" UW#$<##S$7;>[FC+T@J>CR<+(U%+Q :"8F<LI
M(TE7 <GAV2(A:$ I\D&J_"ZL";[N\-_&J#3R,,5PP:@"CK7&W*"+7(Q-G2I
MJ&B<I>_"K1W>0#V680SB8 ;_4+"!Y_]\_67&+.+*@!C!#'F_W%*4?FK*2,.[
ML#F!R0=PUO<M'?N%@+,XIV@C^Y71U<@+Y3>3]6B\K.!&2<+9]*VLSR>H?/0^
M@V'B*PN6AO*#:"QX:_JK)&D97'HM[9!SUYB_F[# X )L"]NU3!,%#E]#\+*-
MWA'=6.":"+$@/(KD-L.UO8JU71"1/Z-VH:MP#/=//"#L85->F 6JR307REQS
M2;'9OA-1$_Z<@'F,.3)%3;F/_5+X=.@'(O,XY*:]P;7BGSK33/H1_!()B!!_
M;-0\4UL!!_U/QN42D@&]%"29[H.FXF\)S J7W$=N^KP@9]*2P">$QRNCA6 T
M?!=*O\B;5,Y;C#?V6;8R\1UBF"B3.,S4T-V$C8M'PLE$5X.OR-I*37F"DYDC
M$>.O0&?K1-%CVX4O@@YW7OBCPR-#)HZZP@_\-=)R0;4^)25A@\V$"T,CP7(9
M_Z8'KA$YQRYLQIP8IDFRBK\/E[#\^&OX#>XH?+S\&WW487/;D;V-\#$\ " "
M[0?\=PP6 9@GL@LR-)\.9W$7Z&* "_'9<+67%X>]!")#G(UP,$YJEQN+@92^
MV3E0/GK%1/?:'"C_AS%#\TKRH!Z>%) #,(3\A0O?&.<I18]+$9(9D9.>A!EU
M')K(\#6;"2"&.!'?3\1R*>)1@+\Y&6O-<;?J'C[5EIV#M/5EMQ4KQ89MMFE3
MK9H;*TXZA>:WJKGQO.^W:F[<:I5/<(#:-_#!I.=4KNJ%0E"7\JPK2& K/:'+
M][R8LZ],<YDP'[?M1Q1W\O!(5[)-N>3WI\_+(Y_4;KV<W5VE>G-9":RY.X&M
MZ!W,E\!ZW6XI":R<A;?2$T:O^-G1#"PR*A=35#5CQ'JM(F0[O_RAI<NKWX_Y
MVO7!R=3!5Z1=%M)N%Z)5<B;M7F\SK5(&TBZG<4\M'J?&?P7BJQ:C)MH%J GA
MC $O":X23]F/HYIJO=$\&9ZJR+40T;^'Q[IBU&4QY-IIGPZY7@)*<+2"=+10
M?F7V"YSFU!@KC^PE+"4].BBO2*NE)-P:X*MVVU7"[53#R%7"K4JX59QT2@F9
M*N%VWO=;)=RV6N5W"R4J]F-X91LY7OI<2*< 3YO?![^.??,@S0U!24IPQ15Q
M+?O%B5+ '/SB/(FKWZ^2;)NO\A85%6\4.;T0Z"6D(%J)-L\<A'GLUO?,/K1.
M)_14475IJ#HQ'#,'+9(C57<[54ZMRJF5/DG1ZA:@',)H-0]65[FTBDSW)-/$
MZ.T<I'W>9'H6.;13Q9(ZC=:X]"2:2)6E)-'T?G>D-:HDVJF&A@^:1%L".*MR
M:%4.[6P8J<JA5?=;Y="JIK632G7LTU*4 G)01$M12VUV.J7,=I3JS>6DK_Y^
M7G'C "UK';79[I62OLJ93:M:UDXB_;!G*T*&9,^YK:>AMKKMDXE(5;1=$MKN
M[Y=9R] JN=-VN[E9KWT9:+N<QGV58#N HM@OOY:N*(II FJKW4;5XGS1U#K8
MKV4M7?070ZU=M=L[L<%T%Y%N.X6FM2JK=MK!XBJK5F75*D8ZH:Q+E54[[_NM
MLFI59]IAFH?VZV5(=Z?SZQUJJ<W!9A'7$MQP15M+M%5$-BT_VNJHC>YFX9E2
M1S>KOK0JS< CHWNP6Z8HS[&!IZ&VFIM51I0AP%21=4G(>K 'EFFF%LF5K#OU
MQLF0=3GM]RIQ5CP?[8,2D*D>\NWXJ1)F%T^E@SV 4C*E?;Y4>I:)LF6TQR.E
MTE;GCXK*%P41Q/EHZH3KV2! GL$9(Q-T:80_XC/Y\"32XG^-]K9!^;GVPJY&
M#M/^O-(F\) /BF:^:0OWIX];A/@QA:@I4P>I_6?/'H,ZIENP)S0W&\<!_O,?
MVD>1:\RDJ>-F()N327L\2NOX:W=; YJ+GOG=XTQ./];81]F^&0YKIQFAKICX
MR:<)^T@O?.PZG]E+(S]!&.D*^\OG(V!5)&Y?#"3&@:-@+KJN[1CX+-ODDZOI
M4<%7@IFC.,LUF+"M\SFNP;1U(#P:Z&N;-%[9$5.M@S&LNX]<CTU:A_<S''">
M/F4]&$%[N/3Z0<D@6A?MB0K"99I8)HDIB(XK$SYCHD:$*]*"B=9\?"]_)+->
M0"[A?;NJ\@HOUH.QJC%JX.]FXZD%[L;+(D)H. !;K*D6]!@[J:1#4]EIGK2<
MG*Z].$S2%)]LBS.M^?3=^$1C''M>!.W(I9PK[=S 7V9\^C".C\7YW"YMG].+
MPSS?L>18X3%J<9I3S'\K?\KOKZ;\SFC:NJ:X<+C&A&:<\OG>8H#WC,&IZN$X
M==<?N4!#2$#S0);A&Q4TPUX-CU/2U(!K=M 8530P2X$B%?C[V#?%N&>X12;V
M$8P,IZTD=\+'4*_X .X.J#M66*"@KZ0J;_"KOV59NYT@^X)V*C=U'_DCA_)M
MGWT'V. !S#);WWQZZVZF[:"N=MI)NY;.,WL3W1PV$;?=&\TK'$^V(VY$,[T_
M!MG],_ MOZ &75!;Q5G?R-7 S>;BU!@VLVCLFL:  XG?CSP-5229<G@27"MK
MP1#O<YYP#:)%F\]-D <@*9 *4!B@$-<-E!XH ?A(=3DVG>;8^PXJ"^3QL3Q%
M6Y[B>.D4 W45J"'0)N "_X>+KCD1O/)F^Z;.9\^/&'S.MIBR8!I-J0=F<4D(
MOC +I)0)JY6+XB)F;,_ _G%)9M%;@B6.V%A#T;G[:Y^G+-Q\5%KC]F##+KA2
M:!?(R?-GQ!_B'C]I)JFO<V:#8:9R0KF>(A+!U)EJ>DCL(W%(]'G?<H'*W(F!
M)CES2$:C4K1'\%JA6Y%YWAGO@R>X@E^ !AWC!6Q&4]A2\ P3S$7T$R8)^J37
MO3-BS\$GOTV-\107&9@1@6VH>9(;?,[@P6>)#?!W%('"7QG6JVU(;2Z-1[$C
M6)=A11Y%)YBM =LQ#?@HE[5E2'7G(HGZ0.UUFMNJ[<[VB\Y32S<::@_KG)86
M?:8*>>@XZ"204\29X9MO>L;<9,I#A(GN0R8Z9XF$YO22; B]LIFV"!S0F3RD
M#$E#FI/B9_ 5C L$#R5W;JQ9P:->-5"*/NG3D?!:71%?X&&%B L+?BL7'*@4
MYPY0K6. 8M;!I8#'>3+<@9)!F KHWK"YYJ WD;76$[O,3%I^@A^1>P8B]E^^
M_C+C(<(+)5>\_50: N+RP.K2C;$G?4R@TQG_$#Q.-P(:#*S'2-P+_YF,?45U
ME>$&,3,1WJ!'2).4HBNA,N11M4A  SX_8C*2H:>$,ECZOHCG0(S;PEQ$M<Z2
M$0'.%N#(CXTY_2;NK MV.+^6'5FW"^QP\Y>/T8AK>X;F,S_U&VY*"W8ILO<@
M*X >IGG"#N5ZLG9H"K+O$\9<HLN_G^-_AY9^:V': @CG 4Q#]\$VC?%B<SN'
MN6-MCI:' X;&$9Q"+KJ)0AF_HW'TCJ0#AB[?&$F<Z)GX_LOPZ9,R?+I6>HV^
MJOS7S_UFL_Y+](2NGCQ[_&?LSFOTL<8ORG<,1$K&>C5<R?[QAZY<D1ME-6[L
MOC@HB'64,4&,C/C^37-T?'6C]PN(*<UP,!CKLU/30YM>+#BSM,%HU) 'EGV7
MBT>=H0#&]B,\G_!$R/F8AYD,.#@\4Y2PKL]CE[';T"F:Q2^2N]H&CQA_PKS?
MU=-X:J/GSA]Y!?8#YB^5F:TSDWSNI<_1+T LPKV#[4L/0K<>%J4I8%"/>$I$
M@[7,Q"*Y38,/?;4QGFDBP0B=X1+]X4N9RNE 1#\=P_WS:H)CP0PTF(".%#17
MU$!1O%%J$/<KOA'Z:,:$R>>+@ZHIC_ \(J_&+\FG\GB"#+BR2/A62'LPQ4Q.
MY%AQ!+]REA['GR(UD38'EH%-D2:%2^3G&"P0?R07B*RG68N \H/;G,(]4B D
MH /P9O'P_B-O4_"S:\SFL&7P<"7GBA@TJ31D*V%?_N4#$4X62"#BJW-3,ZRK
M5\TR3%.3WY8KX(O6C5>,<.O*PF FD0Y=+2=1T,C_88Z-3XSLA99N@6,&IH9F
MZ&@%@#-E:JCV\==CS9T&SW7QE V/1XXP7HX$H<(7);7_K5ZK-Y1WD0U?\T^2
MZ!*+?D]DH=O(F+9'EVO1"N?:(OFJZ .DYPR'Q5S&*)<\\4'GGZWDN;? #@9J
M[F$ I0'_I?PI*E!@<)TR34B^:&6E$>APQML@\< ?@8&(7^!!7448$(&R55#;
M\IO3Q)?$#=+'\;?R^CBM!3]6-!\HV '_WHTH#> 8+BX$4ZOBG[A<<-:YM*.
MB4M^N0=2!1<G2&KY)^3O<Q$:]8'HI_^@\P 6^#Y'*LK$2DG4_W#2(LHBF\0=
MRITL91*&[OT$CY_0J7N\\H<?8,Q8N;>V:I3G[TPBJ-?32X#XM;N\>"+"$R@-
M@RO@@@25BS@?:18$UU53^'NE!DKY"/G)("X8F"5H[8</'_D>KI]_DZ\'-('#
M--=W%L$/R#I?1-UA?+[#[$D-L0FE>2*8.7SM'$4GMSP<1GK*@;\$FQDMECZ/
M-)9^)G@(%EJBZ);C\H@" ]VFTD90^)C&C/J[/%O->A8=D+E 03[&=9A,5U$]
M@$;5::_PL@FCIP@!+FG_BFNFF((G=R>+$X0(]KV(H"/E@U*X)GDVU7Q[ ZV@
M>(LY)B),NCU:#/>^XMZ95'Q<<L9C"I/0!P16\H&IAB8:$.!I&4P$*\4NTPB'
M1_K)VB")'HF?T+=X!CT2JO)=:6NBO)1ZEC[+K8<U+X/MPYUQ?2_<7IF@=WV,
ML@3OJRF?0]LJV2@>Q+"EEQ6VCL>#VD$<6W!!EKCI)LL-\=IOZ5O1I"5GQSOV
M1K]R\PWIILJ8;H: P>UE;:?12!;Y[KZ?E'K* O:3SM#Q,+"*9#JCFW=E&<DG
M&TD5V5#08R@\#V\!1*LNJTK*XU=2=JI*RETK*46]9$HE95W3^@.]@ [X].@9
M'!E>J!.&ZJ]!88'I@8YGV>)G"8B_V.IQQ7SQ^+?3B)-] :O0 LO'!,L CMGG
M]@"YO7,;:=D@&\;U1_^'17$^V2)N)#4P3MS?F-\?>OK<VG&QA L,/F-.SQ(V
M% ^0XU_02 &?E5L&OX,Q ,XU56+0;\.TM*=,8JLU/%&7RK,X[,>8"=^+2B=@
M<5\86EJF\IG-;1?6=&N!<4S6U;7MS&UAA)'AN3+UVTA&3L6CQ9.#!T>>^^"P
MF>'/1"BXZ/1PLY-E24CI'XEG8?Z]EJK'3L=M7RM9OL)?KKY2UF/HN@S(^C8(
MJ W'PC"^!4JS7@R4W_Q#)1,YH:E'^7O<DXE;XHL--B3W$VZ'?X"'[)_AW9],
ML+=.0R9A[!Y6[[J*B5=(^Z6?B,J00# IQ@R\-(?++.&[8/P*6)EI(!&0S,DM
M7")]Q9A0.NL5903\VB;?>FPX8W^&!?%C#'/J6)G*A"Q\8^2(HYN*[AR2"Z\/
MME^%+S36'(<<TS 11^X3+KL&9 9OXU%K^$CZML+-D$\S(T^>R9=HHVC\UV7R
MFR/NA&K!!I<6XLJ,H7 QP7LS7)G3)@$[,>TW-URL*YTY$7.U1<V:QV ;W"A/
MKI_"P,*S#4*<?$/HF>/#P^V%.4E9WLTPQ.I&\YBP+2[58UL*XOC!:H74=RD^
M2;'^F>;\"3_G21!4)^CYB\=$"H/%0\(\RU*B('6;(N<"NLR>B6@UT%E-D:!G
M2[^@>Z2R9XO'S2U2@#K6UMMS>&S:58A$ 9&=[-I0\5A@_T2HKBKB$9B#I8L.
M<P8?,.>$FEKN491,\7"=+/"C?SB,A^PC-!!$[V6HFDZ HNXOCOWF3670'V/&
M;,:;"C! _$M(+X+,#.L5CE98$S9]G>0"10E_X:L)CEX> W]\[-(XH0<I$>PO
MH!:%H.I;USPMV)QC, L3(L"]($V<1?0T5&5FC#'F#I^=:?@W48NI8).##;\,
MXQ;Q[^$WJ*6!]A@I2<'R.<M.T$F4U,?@][Y$,AS>%+,>^,05<0\E&>8X>VT]
MU*FKU"6"ADT_P%-LWKDOL^FET\T)V-?()J@V^R35[_)-S",W$181"UD25%"*
M%"G\=4&_E_7+H7#<FO17K".09$)"TC*6ZYA!^CI"&/\@20.R-]/$'[03&%F1
M@UACQ"_/<]W9B$]'P5I=XME-0&=LOO"\O(]^/W7A2V6> 2FXL%Q!,91[X(%<
M+NYWO+V$@[;A(:2,.=VY0C<=]V;U[362087-5[Y;X#8%W620/H(UK4SWC'70
M(]"?YHRGHF*>K#32XF550(E!67('0TN/K%\L_Y3JMV)7H4>N(K1A#Z*$]I))
M"<Z^1_M]Y1T5K6$:Z2!&JV74H)-(..V^D[Q43J.5#B*SG<YQUM+95E?>29B$
M.QY4CFJIT]WIRA.R9?>=Y*:F^NE;N3 U]<D'TP##8T\L5I5?&K64Q'+C"WUD
M<^Q?M%ZX)CI)[^CW(+M@+GB[&3:T.;0SB@N.Y.VX?-.*[K,@!H=]=C*@J,.I
MX==])VAL"YM0.!J#%13GH\3B ;'&>ZKY"EXCVN$-H1*GX"2], N+;> KEH;1
M&%!F_$L8-G6PN#.H/]$PL^(:,\/4@M!9I&N! D6&^Z>K*BUZA$/5R1J!1, .
ML*0#PTP8W7H1SS1XL6#P$OAN^[TBL/C,( XJ E1A2@=XV#?#6"+N6D2C*+1H
M$\($KS$UL!A&H42N;K]9D4 7K@[+4!@%U6 IHG).(I*(!CA\O:S;A _=V1Y3
MFHHVLE\90E$P_A,L\A.DJP2T2Z&<F>W@!7J:88I.B:5J&]Z13#5XOJ&+D#)5
M?S?[=3I6@7^PB&73),W$(G4\/"U_98"-PN-)5'\(*S)C]"<^=]92\%<;+X*2
MKXY5(L$7[Q"E58I%YB/K4M+U3&LVF_V#IXTSIWRL"F+RDED+1(QINRZ!9FQH
M6"7=^SOFW5*T_2L\:O@*C(C4_VQ'"DE%6>XGD!?C@JU18N+__ND*@4('[?0)
M>VOB )UN8CAF'GO,S_R*[A$$YP:66-AT0$D&7WAJH6;8A@22/@@<SS4\E\I8
M@?0^+;Z[F &]YCP"O'<?O*AH9Z33RT(C67/GB<K$?3>5I[FMMCOII+SL8V5C
M#PB0@0WON)$,J>-A@+.!?]R$=2)#."2>$_P-,W9I)>+[7FE[D%%0D5F\PHMD
MJ9O,GXF&&)V!9E]37=)I+?7H8_$+TV\TQZ+4?O"TS_QAN>_VJA,RMP+Z!K5(
M%QW'6@K< )B*)K:["5@1-&EMQU4<S4 P$W^$"71*SNNV/_+0IO*]U(8(F=$6
M#=T&(3N@;?E"VGW,%:<$*0E@(ZAPCQZHRX;;T(:DM@I1#^#(NF#>)+'\^IA-
MF?J$$%,%+,HYM>&(!#"9H!+!#MF2)^:C)B_8IJ9$:N%]74QVV!*PAJ !^)5I
M\),P6%"';SLZ+,C!U+[O\"8Q:>__@AE'34=5O+S*F:8SGM:E6@!;5._'R@>(
M;K%Z,T3>(N,YP._"_*6L'$C_<'2]Y,O,"&MC!-8 0VQ C=H/")4FVMR$M1,K
M[KDJY[WX<MYN5<Z[:SEO4+2;^8GC^ D1P2N:"ZD<9.*C6VMQ 1 )8(P6D59-
M:FX4A9RD:F$[4Q!):FA1RLHD7<1+(O(791<\#M42O43G(0W,86MSP].PPL:Q
M_9>I[,2F;LM14&-JO?!&3NIOM4BZV52*PNM'2?!%Q1LU_8Q0 Q) ZL3'&M7@
M]?3QE#60&P6_H@89\4.5RM.DM:\&3T;=0\@2_&$.=;B#R26KT7S<M4LN5D2U
M<KTLWR>ZR;3)A%?KP E)Q!2AR".M64&!3"(NI"YU)',DV4A',B__L9V@73@L
M0)(5-&%=3:A\(_U/->7\D2,>&0H_9<B!"O#$P>RWX.]C5LJX;HJS\A8N/K[V
M$H9X5PS?'?-XKD0"""]D'ML4&3$+M)!T&WP=_9SA<&ZM$#0.;J:E<@ +<43#
MI^_*G5VCW\"=J<KMC'J?@XH_'KA0GK4?RF?#'9LV%K.ZRKMG>PXTU6O71>\R
M/B@ 1= -5WMY<=B+QJ.WW)>A7DUR(S01Z*0J'[@@+S3G&8DT#*A[\$I":$*K
M%N2**?HZ-<SE@2A%VS.4Q-&74/":E@W/8+P%-%RE$7T)A:5AQ](+%BX!1\,!
M664&J<81>S$LPEWFGDMPJ(T.1^*K*>#I(7RESONS*<".P#N\!S? GN*/3?54
M2".0(R )E!P"<5<8KT;7(- IL<;DF'?$E0VMA/8LKE?&]"<@KKTI B(X'L>K
M0)Y5?*YB8^=!F$5&!*3CN ;^H5GG#GE!L$X[DW7:5W7@J\\AU0L72S#/D[SA
MH !%>?<$3C6Q4+-9OR(N@K?]2P/: +>+QUPB+T#92D$V\6[TM4U0^!.>FPCI
MF7QI(C.X_[D_ K$=IIB(U0SFIG L^>$QKM4#;J<69@GW'&"PPH=>"#X^:FG,
M?6<\U5S>(8K&@P7&PT)5V&QNV@O&8HW6*AAJ8;^VZ$V.(*.J,F8 OC![Q;2*
MX.J 8] >$F6\SU-@-]R2P+H*)5%D%U0Y@M.+(M7]B6I##>N >2LUG0H#5C7D
MC28P5M/%R@[RH\L/@ PM8Q9\31S!Q,!X#D5.UC^J5U.&4@C1KL71H $L  A&
M'&S7X$A?80Q01''61%0$%4X(3$ *<KGB,+"S1);1I= WO>4WH^22M L/<X)G
MQE*!$NU]Y1K72^,(S9"T-(T_<1D\?2G?$^0"(ZI&C^C!$2,7)U*]:G/XN34G
MB,$2:7T$B<<P(1UI,DD"4,E#O"Q)3)@M7#!F2&$0DOC+X+AOPTY(,B^:OXB6
M5$S#A#9,J]E]_T'YQMMT2*J$S:OBDTCHPD!V,?7,C%?2O\BP 3@Q[]3B H'P
M7@2O6/S"_#DQP9PG!#) K@5Q\E)I81H18U CAX#)C*3U/1'&I-9*Q9TR)K#%
M8"?8>0D6+V$$@O$@&YRBZ% \3$AXAJ*+0\HV\BI%!Z@9'D+@QXMH8FADNP*;
M,#B7 (]8"\XE/(5]A64GJG0R1":?[A 5G"O$8J8\7"7CT)2*R[@TJ1,1.+OQ
MN<!V(IM0#K60OP+:('M14S GX\AF.OB(O:$H2B\P.)*_GNZQ]GJ)FOY;:5N$
M3DFIO5/A^]_=/]\H+;#U[GX#D7?_>'OS=(2XP(%%-[\I@[E!&[D0/Y'6-T]Y
MYPAH.9'PL)A&^'3 QKX+'.!-WW\X>NBDF<AK/HVG3/=-=C\)2/*:LS>%G_<G
MRM6YA,@^3#;Q"LLM%#J0\=!C<:?Z9H,2U\Y'E#D/N%L3UF_]]T_- L1(D%F1
M4B1,T(?"8PE8J5BIDE@1/^MWWRT-5#)HFO?Q]V\R:?'@8T KJMONCA.C)\IZ
MQ^6<F@Q^B0$&NJ[\:H,%6:[!M(7,GY4*)X<YLXU.M@$HSY6.M8@"HI;::J6W
MU97P BO229!.HN1T"]+9<VQ*2^UG((\>^P*WDI$3^M\!9.2C]J9\$WYLNH@\
M>RMAB1-RH/]$]V) _W#<P6D7(3D'FQ+_^=[JV9!1-U&VO3D9[2E%^[UT5((C
M'7(YS<O@-A"4G#FOK!1TG^GD')LA=O>^)*>\RV:51) HN)S?9,^<N*1"Q&Z_
MNQF_I+EHVUAQ[ROR.@IY)3JZMR2O/<5Q0VULJ-=S(K!RVJK/6$=01B'; F+#
MG@V3Y>J3;?N6K8R+1*=Y0-)W+/\^&>[4=]-!FM81<>N\@Y7G0U.)-LRU-+6W
MM]_9T%(](DVE-CT<NKW\F*,A@ZHTPHQQ,''/QCC/A)?1_ZW)@WU1K-E-NJ,E
M/ 0"*E"E!3801N8I8AT11Z3A@\(CCY=%%9%2A2-V_6>EX/NQYL;?X!QL1Z!F
MNR>3>F_7E-]N[C[?/RJ?;Q[NGVZ?SS[]/O2VG"4N4=N!9E_IDK%*DVYY-;1Z
ML@5:4D<1^KO9!"[M=K9MU.YVMUKDO@JAH_8'R34N-]<3!L@<VU-%]:Q"67Z!
M)BW%U1%%PF6W,_:J=L8=548B\OS@8&N?M\"Y/][0TF^D4CS!*JY.37EXO'^X
M>7S^MS*\^ZS<_+_OMP_?@)3.7:/(2^2=@(%9LZ*VJP1U6XF8228I5A5;97)'
MSZ1VIJK8JJBNJM@ZL93:%]\!VQY;QU#33<#VQY:?JOQFNS!<HG(K.%;0NE_$
MH?[JV&XA?F*[TU>[G23\40EOL**=!.TDI[5M13M[NN]EI9URYL," [H4^8MC
M)X!S(/Y!+. :'&]QLK*IMAI=M5F>2IN+>&%1]-.K;TT_>\I+H)]Z0^W76V6A
MGW*:E;^QJ3$V,PS)BLZWIO-$M=4#P5Y\]P2X86:D1UY$$;*TVU6! \O""!?Q
MPL((+!D[S(/ ]A2VY2*P<IJD"(;D8Z,^P;7:$^]-<\I1%WL&7)$HV;KFV(0X
M"%8>_),X\\),UE:CKPX&@[*PP46\L#"*2A1L[411^^;LP05JM=IEH:ARFK!?
ML5P*1Q8@V$@ %UCQ03Y\D"BD"8X["LY8G$P=M-16OU$6#KB(%Q9&2XEZIRUI
M:5]I6BY:*J>9^LPL!#>,7(@RQ.()Q/0J!1^<<9M--N<D\E;7-N')T>=N+7#Z
M7ASF%IBYJJ>/(2Y1VK8BR<.29"(=MBU)[IL0*S])EM->IEXQN!!>'A<KH*O2
M9CE;/)L7G19G0:N#3E]MUS=('9_O!9\-1?43R <[4-3>K66#=D-MM:N [YJX
MA.M^4"*3UI3/$83Q4O##)1HN_42*+C8,+[PA^+O)\"_ 5,,($GPFPQ4CO9N]
M@=KOK8\!5J;WQ5!P(@=8* 7OK2WJ76P]6Q]WJ2SUI56FV^8J?+H<!OKI]^7W
M$XG#3-ZXQU$5!0% ='M]M=/LE[E5OR*S?<@LD4W<C<SVQB[KJ.WV^@3UI2-"
M'+Z-\8O-YV%X4X?Q#H\5, ^RHR9LWPI;Z:-#C&A&4V;[^:"3D'U1VR&KX;"7
MTW#S;EWM-U,F0:]NF>^G]?6O77-> ]F!C]5.O[=V<GD^M]G>[C83(F;MR;0C
MM[GG5'>P\.JMI(6W[C;3 !#6KCFO2?3-^D#M=9*+7K[-RQELE)L4PJ]R"HZ.
M4*-N;)Y>C%1JX( MGEY<1^&=6 UYU*&YG_"T921K&20MBQ9D0$2#I.6VCO)[
M^>TE3Y88J*VU&"&T-;RJR(!WQ<1,?C"/C\^.$V/(Q 0D.?>7!NOI,T2[]G"P
M\FOX-3MEG%HX7@]' @>SF,N'292,S-Y:GF:]&&#"\&E<)X@KT<7I0,_#NU]O
M/WV]489/3S?/3\JY8TJ$]R;&A47A)!! RQ*3IX%^=89SK)$7>(C7LVG0U2?#
MPM&9M[8E9=\S&T\MV[1?%GSR%N=XQB=MB6<&8]'$_#-X'A^=AL@5)G"**P$M
MY.O$-VO*<[@4/H(+I\Z*:9%\S%I-B4J9<,+D&TXC7R%U$Z4'<6&U3.1%B]N>
MVNMVMQ2WS7I.F\C+D&PVU%Y*(1)A+&VL@", 6G&#9;=[3N3S=SBB'"W*MMKO
M;:M6F_6<-I&7/FVTU6XKV8&VVSVWE^[Y<NS2SU$YAA,6L\5S#.VG!% _"1\[
M'-'VA?;T%2Y37Z;+:EI;Z6*12R@L$>R4C9/[(23* 2%^TA%]MCS&O)>Y^X4>
M8"6G==-16)U2W_'FD(673&U[9X^/A.Y4)'9710^G1P\5P-?V,W,\N'&P[G'T
M>"SS_Z!YF1UM%5Y39H@U47N[PN!>6WW[AWC(']%KDK?TC33P[@4R[?9 ;??+
MA^U4JC>7E<X&B;CO3G0F4ON%TEFK4T]-TQW[MD^E?C<:3"IC9<Q%5#\.$O6[
M*_@M<GO1RSN2I&^J@TY3;6S0BE$5\UX,.2>*>7,BY^(5"I!SJZZVFE5E[_:5
MO=RD+VTI[SH*SZ7$,E<V2@3:5[#1FBK> EFF/>BIK7ZIFU8K(MR="!,U>#L0
M8?%RN]T8J+U&J8GP0LN ;^,E&Z>5ZDP0?YCJ#/=UUNG.HW;U!P5 Y8K?9-OT
M101VUKQMD$O )U&#OD3>X544,U"[H?:;R2+-C:3W\<-X%0'N3X")LOGM"'#?
M+B)P^OK='1N23R2R>*FL4-I 2\ ^A1Y0&4BV(I2*4$XXLL71I2(E]-S$SXYT
ME87((PV_A[ ,$J_+QS1(%+JGA!UN?F!G#G@TO]JV_F;P(K>\S=2&VNH,U&9]
M>T.U50G=\Z''1$'^SO2XI]7:4)N=NMK9 4CG&/1XH?&OX7SNV#^H]4F9^'S:
M8;29Q7"QUY 'O5SE'6DXWG1E,<UAKJ=X4]MW-4M_7X* 6").( -B]JK:_R^T
M[VAZ[X:W\)Q+E.RGC2S-8JP369[X;R 7Y0:)Y\/JHND3LG<S*CPKV_=@MN_]
MV+.Q%+^A7"G+XVX[)2&OXLOJ\C <FO5MJNI2A.4=O.OYC9FO[!LUU15AXO8V
MPA\N-6L<K)ANF1VZ)66'8\OY/%EHJT*Y) NACGQ^LPL9[MD_?=8YF%999IU>
M20CXG%EGJZ*\#-;!WNZ*>4JF=_HE(>%S9IYM2O$RF.>+[3L5[Y1,\0Q*0L'G
MS#N)U/X.O .?K7CGV&.TILQAV@3GO9:$=L\HM9L#GVU3J9O"9T.\V2*9K=7;
MC-NJ8-S*1'2I>>\<,GS->AR5,YN-"H).QXZ*71BEM%F]HV3Y5B>%"DL"2;"+
M^6CJA.O9 "TF@\1')LB;B,:()Q[Q)-(P*QK];1%JYMH+NQJ!@O_SBG3\!T4S
MW[2%^]/'3:2B>!J;??RGIDP=I.N?/7L,(HMNP9XHU\@F!/F@P8/P@]GT<U3,
MTT2(D2:Z F-C\S1C^2&>TK<,RV?Z$$0$_N./IC[H3-H%@)ED8*'V:LK7F^'3
MS24 H"K#N6.8X/0U^JKRQA1B%8:@OIZM:$H&/31:[7I,&SPS9T84D7;KC?Y5
MO2UNG?]]20M<N6S\0?>=!=A9P*7U9=%XA;\0R,/:B\,X3#!B*VIT!)E5*:U6
M(C4_!&8&JM4L/4U)I2XO4TFY?TV\J):ZO?N",-%I6NK*_<O7''8UL6U8.<A;
MT_ 6BC?5/%J%9E@(^3HQQ@RN 3Z(U0WP5U,;$3*,PUPX@O&4_J&S5V;:-$1"
M(54&MZ5\@5O#P_I35;YISL*$#]84<$X2QS:V9_#GF.XX3%[BUI6W*>/ S'.)
M2L/1GS5]0:=MC\?^7+/&"_[D\)D(8&U@@0;=B64ALHTCH)RSL;%;K803?,]Q
MGZT7+EX>X1E!GL_;B;:V O%LJ>UN\NX0YIR$E,F+4T"9P>7PRS.LL4-+%6B]
ML.<5^XV#@7_3?A@S?W8K'X&[?6 .JBM0.YOO-MC2 \C?Z)X0R Y6#>^[:H*G
MD=C8WQ5B+$(CQK_!1A4D'+#?]=4 [FON-3D-4UO0R.\OMO/@V. 9Z"[NB .@
MKT0]S_."LR;)"JARW<!_ >D&9_!F.W]B(9(.ZLT'/4<\XR69BI">/=O^,V01
MV;@7L)(=X;9&3Q4BE]"E@P<BN\&Y4:T3O.E?OL7P<P,L?!(\)L1>^XHP9#G%
M30E$G6-(:0&#TY4AMCHNA8MY"N\U!C5EN(I*$Z5\O\,Q,,>]MF?(BGSB&)P(
M>'N27G,GUN3LC;_3+> [%0<WA6>E,]!6,\."X_)=Q,Y&2&YB2=P\W"18N ZU
M3?+OC#2\0X$^;UB<BG#WVJMFF&24 4]KNCVGG]+AP3W(U^!S^)V".(9UO&JF
M3Z?+;V\NB!S,AQA(/HE.*=B6/HN5;@BO_V*!TT%+TQ2$RT<;\LI$K&!8LQ%!
M#.=?Q_5<TL *5#<CD+] UBX_3S]YIF\8BD,C!O2G."NT3>F?XLKX# -95R@&
M%N"S@'QUO"P]/I1 O%-QIXQY):@T7*<P\[?'RU)'>![X!Z<%.1N""X>.T-((
M&&4O*-KJ)H\ 'ER**]LM[+,.PR/'PN'[N')QUY0/'XON=CNGX\/&%@DC?#Y2
MY51O]S1!@0^0JY('Q/.-)9,I,JMTH/:"\V?C\SS0,F:!%?G_G(^7E+="R<TK
M>W*%<3L"6*KRQ:M>EPM><BM9>Q'W5A_Q"?>3[R[/&Q=27=%NJLWFCH.0+ZG@
M[;P),9$%VIX0]^Q*;@T&:K-S0CW)9</2N11CX3SV=/XO/+M;*Z-9%SI,7PUM
MA#ESHSR1F(KDJA=>XJV5L0Y_R?^[]AU*C#]@/3>?1_\5!,85EBDIH7-(QE\I
MR#%/HSH/@SF!+A4WF*4T7HB#+@17JC50!XUD'<#1[^KBB2-1'[(#<>P+\M0<
MJ(W6!H.T2B@2CQ,2RY1_!-B'$G(LA.:<"\U2D/ZQ6Y3R8)=$,5P&N]S9UK@X
M<=JN]U)'T5_0%9\/3342H#F[T=2>4KC3:*FMP7K@QS)*X>,8IAPTE>*-*'*_
MNTP)[JH4S)$=D3U,W#</YDCTJF0P1Q%BMM/NJ=U!?[<X[_E*PC.BK@1BS#;4
MM:? [;:;:J>YWB<Z(G5=** I%BB/[=G<MJBJ.Z@)ES7@6(,<J3RF2GT'B\L1
M$9?ILA3YA5E 3*9H2,"2<RP&]XS7\$GVRH)EUX,_9J+U1A1(P^_SK!7?M78Y
M$5,@?KFV7>^L $_/0V!GE;=V=P!#.6"=ZQ>;=TEXB,FE4(N,JU _S84G#4[U
M(BUL@2G;/6[>/WX^A)-N6^V"V9*L2>V6H)EATX+DRQ$5U8U70N6$2>Q0A>Z=
MLA:Z5_=[WHT,U?U6_%O=[^GR;QF3QM'6"0YB(.!7JC+UHB=HM1IKJM3%362%
MQWJ)\-BNE>IJJ^J8N'!27(,SL8H4VQ%2;%>D6)'BGJ28 )G?2BHFDP8[%IPU
M>NJ@WZUH\:)I<4U#XQJQV,A)+)X2+5YH.OC>FS(GAC#F,),2M)XM $4RX:IB
MLR]SQ)S: >,K*Y7;C^$8RFF7]Q/:]FVXZT>^Z6>;HU-5>=ZR._PEAS&J *G.
MY29/#9#J+&ED77BOK%&]"CSJG&_W-&.VJT*S^:'3_4XO9/J5!J_07A!Q>J9Q
M8-H0&/9#J<@P0CS_N'A5?(P3R#G/D!\Q+T,LEO722F _+<4FDO,8&G%H^7A<
M0DJ-(1<:[J,4&O1;; K<*7P6']O0JC4[RYX]H<H?^5XK0MJ.D/KY$U(\]I7L
M@(@34KM63TP .3HAE;&W[*>/GZ.(^.50^^>)>5@=:+F-DMR+'U98))>4S5DU
M!S<G<+YFHI>9CS"(:QXIZ1Y!T*WNV]QTP$AMFQ&WV^2J_EZ">SMKBFDD$!5V
MHIC $BD+Q5QHKNS)G\]-.;!GK+E396+:;R5+GNV:*1O$,V61K5[#3K_ *JMT
MV:G8+*??35>U19[)159MD24AG'5)EJI)KKKQZL8KH5(:$JO:JJK[/>L4?76_
M%?]6]WNZ_'O4^6P8E%$>-$-,LI]A -$-4;J,=%3<HT=94W+, 0V>6X"Y.O3J
MT*M#KP[]<K+2&/";,0VGN4MD1U[L:89#<<IP>F?>_==<TXEZ:\%-:.9GPV%C
M#V$M13O@/;Q[58U=7HW[[:;:;ZX'XRY#5V!%HT71Z)H.U9UH-,>._G9#[?1V
MQ"^N:/1,:'0-/ONN<C2W5O]F=Z.I!A61GC.1KH%YWU60YH8!T&RIG>;Z<2YE
M(-*-ZIH*J7/:H>5]=;5,4=4Q081Q/IHZX7JVB(<ML<7(!'\E$I*,'P4>3EI\
ML#'8-NDVUU[8U<AAVI]7V@0>\D'1S#=MX?[T<>.(WL=_LMG'?VK*U$%2_]FS
MQS]]I-(G='2ND8LL#_P;#1Z$'\PFJ1SI%H@1^=>P?"T0#/B#/YKZH#-IYQ6C
MW90^AS11($C<RC!NF,"5W>\J58> //$=<@MI"H#OR$D 09N@]!P72X,)CE\Q
MU]JH'#B8LO&-;W51U<J5/6FR*HA4IA*K@-!.H/HA(^Z47XNF/)1_,\U1;K#0
MK"S3E\\M)2=FT9Y:3NZHW3ICST[5A@WE2HD!C/!\=IF<ID)<HUP=H 0:Z4H]
M_* M,#;M?O;9';SF^8V9K^P;%:@6,LURLUAGJ?,'A^L276*%;DE9H1Q-2CFQ
M3P)!=5/V057[_&87,E*[UU$;G=9IL\W!U,LRV_1*0KQGS38I0^*V8!ML;RF$
M<?IUM5U?/]6SU(QS-'W3+PGYGC7C]/=AG"^V[Q3#-QVPT[;HFBTCWQQ-X0Q*
M0KV;^=8E8*@<O/_UG-9*I-BWXC3CM1 -U6JK_?9Z1DN-(929^0ZFM/AD]F^&
M9<S\F9A](N^N7'Q8&G;+57]MA.F0QE5%<%.W,5#K[?4(ZZ5FG8/I+;RI#\HM
M!C29ZY6$9"NE%5-:VV75OENZ0$]A^LV/,7QT2*T01?!:KZ&VVNM=JTIS9:WR
M=C;W$1SE53-]%A8'VR-X"9_^7BZ6+ WGY<I@B:*V:VUN@$E!C'4?WL6U[SBL
M&$[JM'MJ=W#B48H#:RUQ'<K<=O"L2D*OE?**\=::6KQ ;17(6XW60!TTMJ]<
MKM14P&^V]7*%\.22UTY 59UE:6MK31]+P$YWMC4NCJ/:]9[:ZY]9!6NT:/"H
M=72]?C.&/'=MVKY^;:.I"/?\Q)Q78\RPN!*/':$231O[R_:OH"MNS[+.X^[^
M^4;IUY3KK_??/RO7]]\>OC\#@2A/-X^_W5[?P$_NGA^'U\_Q8IKSPTV\M91O
MV@(#Q745D1"IHHB:U#U;T4#$P(W#+8HK5UQ^YW2O>.G*F^%-X7.OS-)M1P%.
M&D^5N6._&MCI3NWO%E"RJ<Q%K 4>3-6EO"L>I???LH5,NQ$COP?'!KM.=Y&0
MEHCO?O+(QLQX1:9R4\FN?E7O2+*COR_!AV\3)L4\7G*B*&Q55]B/N<'/3\E$
M1V^W8]L:T@G)8-2])?=TPQ^U\6X^BHM, .C7E&<\<7X1P<T%-_*&()AC[FB
MD-.QDE>#2V1SA#!@O"6!-@>7!HH#/V*#"H$/>52A<T48<@K(?\/6:V?**+\S
M1'! 30:7.Y, G$2P8]OUW'6DG# _'_@!BY:/H:73W+NAZS*OD&JG;E?M=Y*V
M)U(JO,QB?,7$S\B@ZSF?>#U!//"X)=)QB79L&F:HT?:0PN"XEE-5[9H"XD@;
MCVU'URQX%RUF^/1=N;-K\(%&_ZK14177A_>F7@$M9HE(<2_A?)M@]6A#NLJ(
M@;:F7_Q+ ^YP%@I?"?Q7;$\CE%@K/)*K$5@W>LIQP"?G)I@0= 3BUS5ER%?#
M5REY:1)#TL3324 QAG7Z2EB63_M;162)>B%L*KJ?_&K;N@L4)H2F^V2;>G1A
M13<5)U-*M.E5.TF8E_OM)*^VOI[:;B4C^BI0F#M'#GIEYB+/2V]O<.F):I<]
MCBK/N=MJKYL\JK47GZ@8W6\W^8W+59N#I/1<NGEN[!\#;#O+@$_PT6<VRM%4
M5X2OPO2A)YJ;1G5MW.@<SH@?U-!8_^WF\?GVT]<;Y?/-ITLPVD79.K'3'2@Z
M$AIP3:TT*_Z)C64KUX/OC*<8+AF^@!@B))!W*)7^Z^=^LUG_Y>EA2']K_/*>
M:]\Q<SS0G:B5X8$(Z D/?66N9SNN\FYLFZ8D?MXU)IYS*S\3/&WN.ZZOP>M@
M1=)T4#1<!"&RN\PT:3.&Z_H,?X)/"QZ#.A5M4K#P/<;U+*T==*_E"B$2W<>#
M^.2#_&2P#GB0#6(7A#%(#]+I+NA_5_'G^%(-7O,"BWJAUSA@\1ES,)HW\E8Z
M"4',EX^OOW^SF/Y),]&L>9"/79\.^P,=A#_$7</IR)M^?K.?I[;OPH^>W^#Q
M"RI:_$:_VSGPK];K=?S_I,SF+904-<+.MCO; TJ*'C?]1!XQ67&KZ=,%Z1W>
MMAX_]M6GW,OV"2-KA!_/X-FVLZ"EW;I(>^/TH>HI4NZ0Y]Y4NRO.G9^U-]4\
M:K(<1ZZ!F'O%024\CB</!/TMG?AGD ?6RP-Y;$]3>+++#\^%9]Q/(@<9BH[C
MGQU?:.+XZOV,XW/I\WB*X,: G04B&@Y P:,4!XG;138?KZ.Z;B(SQQ?#3_,!
MGP"'23]+Y>?65:-1-%T]),_G]NX+F"ZUE"87]-;Y 9VKPXXQ#\X]U,DL(ACP
MIXX);N[138P)AJ_ !41B0/\/R !_80B!H>@HD8P,>08?QLID'E_A[QIACZ-+
MWBDR*!6S<(ISA&Q;062)HD TUFXM,&9\5"*R. :'T409.)4S@>+JDC/WHKX-
M!]LTF@D:^SL1&<:=9BJ&FS0NM13V%P:BR/$Q%_ #U]-,DV)1M>R@63<^!.4S
MF*&.,?>6Y17>0J&2*D)7J0(Y%#K8,G_-!0])7A7I (G+GLO,%?YK"KJ0.?1+
M4(,&AP1)ET_(R2'CRA@%_ -L)\OVP-5$78B?ZT0^QZ,J.AAO\#12OV,-I^'\
MY1M.U,2"Q8O=T+K$'CWAM#)+$7F<Y-IHZ0OB6X4 ')1!'3AGX2H3./R H20W
M\7U'CT:94LQ1&&/*R-!CNX[N!BVWJ?&"P23X-KV6[DAYUZR_YR]%PY7L1?C#
MP=^T^&]$A)(K!'#)QSY:KFA#8EL]?5?%Q\,"-6G93'Q+U^18H:EFO3!AYBCV
M&,X#S"!8N<XFX,KK,K:]TMQ^GQZ=#2G*IY4YC!M(+K,,#!S8(H!F6#K(!*9;
MS'45UQ_]'QN322WM="0!(B_@)2XC=HHT!:)+1B\BPY/@>:Y<,$:]'(8!.XRW
MX9F#L-(P>WAEXHM&FFNX@DX]+(YEJ[S_3C<1P)(R3X1)42!N&JTZI!'7ZZ>;
M(&NB'=V$C;;%?H]JM+;:J1M>CH3M2H+MXY%@BA>WV96DQ,Y.@003$:(M]KL<
M72LA"9ZI=1MAK$US!_&HT$HEY59!H9R"0MU$S71.0:%_^19+L!4V!NW'5:WL
M*-"*@,]#Y![) GH8<G<K#CD5)\?E(%#4E)X'\1LT;%=%F_"5<TG RW&D%=&1
MA-@[9'0DE\M+#8>TFQEJ(#L80JG-+<,AB2S-'N&0O"AYQ_B'PJUFLNUYQ4I
M02^.#5;V7(08UP4FZP<+3!;$^YU6)Y5VCIC6NF@@1>QYKH 45P$IYIMK/$YD
ML5EOU7.+(":<ER(BB&O%3UE"AOV"0H;K#J#0&&$5&JQ"@WN'!F\W#*[L7*D&
M6U\59$D C>P=YRO()FITU$YGAZC*/H',@QI]X"]T4^SCRXBBQ KU@/>!6QE5
M^ +3@I+F%:-!9>DJXS]QW]%'WT^^R.=A-5NFLYA7O66CK[::282V=43;27#E
M+IO(J]2RTU2[*;UR.XND*#T+]8BJ9<28%<[FH_!6(O(L;#HP.KQ@>)( PR9I
MFA\9)>RWK6\@QPI.D'W=%-REM6240.'891-Y%6ZVNVJ_F[*)7<MQBR0C88B1
MO95)0^MS&*W>4H/)BN,/WEDX.[?5>B?95@X^TY:!;.ELC1A^+U+MGY7Z"=H
M3&/"I$5-4<5S56O18CT>/D6CUG ]N7L.U$_GYY4 K3\)>Q!N  VE"I?_!''Y
MRP3''\J1L#0\,O2B)&CT);K$?Y1O3,&Y'WD9^6;M"/>+9(XRWE2LE[(,5W:)
MW+P.SZ:L8T/XSMY]MS2?JCG>EW6$R G<\:'O#KW2LEY7.3&[$JU,Y8(+*G"H
M2Z.>"_9/.UZ*OY1*<Q]XVNY7+)XH!*58;604*I3P$BOR2<8'Z_N13_NJT=P#
MO26[W^[8EUA2R#6".,0P3%B[0)'(R_0'ECAC8WYXMX(A$O$OJMH0ATUAVJ^&
MQ>XGUU1M.W0<3#93]<,=*P16K=7MJNW.>NCJ;63,^XI6\J"51,?(WK2RISQM
M-9IJ:P/ V!UHI9SVXW \]F<^+Y?0(JF54LC#;"S5LH*\YF%1)(JY?R72("1*
M-W)?V8@Q.0&\-CMJ)P4:KD0^646;!Z;-1%/WKK2YIYSN-=7^(%EQ62+2+*?]
MFP@7J/#!] $5Y4$6/@R@<![LD8+WE>H/%B&ND2.P+&'],,M4_.!+$]@G25\I
MD(B;T]?>H896MZZV!^TRT]<IPE(G="J5BO,J>??F+Y]PQSU6*,Y=?US7!@?$
MN6O4:\K3_PP?;_[G_BOPRQ,6FS=ZOR@W_^_[[?._SQWR[MYWE$^VYE")_F?#
M86/>;!QI"Z5?!VVA,VVA4AV>[7O*Q'<X_"P7#Z,%-5Y0TX @&E7T(V"? M;
MPY^JHM-[XFT[\'KL+-!\>+)#A6<C> $( =[$:COP=X<A_BNBQ :-'G-'UO/Q
MODN.$6L(<%S92H%OAP_+E\$*& +58BT;X=BBN(.E\H<Q^ 3_NFG,# Z$2^]B
M&K9^T--Y!X'8(_Z.P'.7%P-GI8RH/]SP3-X$X!"<-N- T.)E$C):-C.P5U'$
MB =B&L!VNL8;271L<31]7@_KP#58U$;AS_'H?:R6G-C4-[4(GXG=5'K0Y!U9
M\G*/3$WYPJ\3>[5Y@SFGC+'MF[)7?'F+5)'Y:A.4<0A'S ^4PZOQ;VLZ]J]@
M;:<VF<C+%]^;VV\<]&G= D^,!U?*'FP'C)K 3YQJA\I#<,*T:=$.>/Y2*,+Y
MFYR+NJ)0MSU(6"?!M^G+#YIS[SQAO;#^&P[F6ME4+;M%Q*/^X"L:QI^84T]U
MO59/#MT 7G;X #%5%IRZ*_L5VTE%'E\M?_LP./'#[#NUL;Z1#8S I7Q-&7IA
MP;)DG[ 6)U[!G, ^)T$&,I%:!%:<V!J*B?;A'_&TNBVUE]8V)11B /L)@MCW
M7$\C_<"5U29,A=HBVE4I]*=LD$4L#]$1N 1W@%7_L=]N\K9+D.>?*GF>*L\3
MY[):GB^EMGEL#^RH& )$C%]#X;X%NW[:2ZBG2;845J6527F^8L_]C#U_-G *
MC*7?3^*KW;CM<:,]9_::MV*]YKU:LL?Q[\HX6"R8K'RU&ZNNM($>^:BN/6XW
M'1/F4&K+LM<)^!N-=Z5G"M\$OTGG1(A[^/$[(>VY!2[<8%=A)A]A\I[WV'MO
MMC+U+=V)N6$78*J'F[L($1X.L*)9&9+RLGO/ZTDHYU7(3W?LC7ZU)<(3K$D@
MW?$^;2"\_8VJM3C7,> $DMP46]#F<\?^ 0_RT+%=T9=?3Z"5\2?2 ]<KJ3QV
MGM+!F5[LAY&"&3TXX&P>!HB"RN%/&<4#$1_.4MZYC&=QE$;S?>T@W'E\QNAL
MQ!CM0:)O]Q",D0?HV0$8(Z'M]V>,_?&Z,BRW7!FC@OTZ..Q7HX+]6@W[)5(O
M*4D9O3,8M8KHNTBWMK@\N>>H.I=L;G&X*C<&QKE"FK9B+N/O&E8I>B)J]7UN
M6Q(;B:0]@G4%LC8++J(3@8O :9C%66'-9H8]DJ%MX$CN)Q-CC.*88_RS'\P9
M&R[;!&JS4T_F.O$]GW *(8[B999+W!&I]/RT"#\BQHH.WT !?-$,AW35$ YZ
MQF_L1JR%,#LS<N#Y'>C*B')O)4IG5'GA&<[FILTS1YK$S^+Q0TF*Y)&&JG[5
M$2?13-,-'SH\^MU]_/32 ?2*(LN4$$Z[K;;J*>@:Z(!/-<KCR4F5"*1'$]3#
M\$8".J]33X29/PNO/(/F?C>\Z:U%011XP3<-C"I_=AV^\AG>V"CBE*Y<-OZ@
M^\Z"::"S&_5E@T7!7[@UY7>F^)[!9Y12RA!U\]73>&J;".1HZ\Q$TIH CW"J
MB<#PN3(=JF/^,N#F8%9J!$XCY*P/RJN-L24<@KXB?M:I)S!_<F9PA*MA^F_!
M8A#\,;>;V!CJ,27\]@LAX^#B@NB;LC"8J:\\K@1(52'')8.7ASFL>NRPDKH%
MCLHQW#^5"6(5!;A"F.Y8>51)AR[/HWJ$%7V!!45!18L_JG;LJ-JU5BIA45'%
M=B*OD8A]T%&,UI_6:!O".KH@1!WY@O86A]R,"+R@="2,ST;L&-\"+\Q<2+"F
M0,VN1GILQ,?U_8HO#H[G?I*>T"Y>?V9;(=UDL=ZI!8FWP3$.59?PN?T9>&.@
M)5V1,97W' GC+\/Z;YTT* 'D5'(XXGC*=-\$FHP:>(]P/%]L!YFZ J$J79GR
M1M ,/]?I?]%V$SJZP0;-S$D\CNYAX:KBZ%29J#R%KVA3;) SKHG?$@<D-R+;
M;P>KX8$VQ1 Y>@/0I0FM?.CH(  TH%O%+-0@#EI.-)KJLO>_[-^))<%A'\(*
MM1>FR B80@'$ZNK/]^HK/K^@RSY1/B\G8,1]Z#JKRHC!SRWTHK$KB-(*)060
M.G97_N9,LKX-M)=?*%1(O\BE<LFXJH$T+/ ,8PM[)R+[]8Y:;Z_OZ+\H4EI^
M<_XH:/D09+*/(T>"E-);".]-<KRYD.GJ(8SKN^Q+0"^7\.8#B-O\DG1;B=M6
M@>*VV^BIG4K<GJBX31]8>R1QFQ.9KA2WK?6(;!6^):Z24I)8&%U.CCH]M7!5
M@KU<XIL/($6W+U5RUXC17WGEI\4+[#:7I)NT#:Z6JO]ACJUK[G0S@7I5.FEZ
MH6\^ )6G%P+M82O$B3P%V3IU[%UQIFQ6"7,)KO<2WWP DM[>'RM8<!= ZML6
MEQ_[YLL9K Y*VDO"'*?/EI4]?-KWMT*L;I]56"=6)?M5)O&ID=OI$_J*L0.#
M=,3-K-[PK7JD#F+RMAIJ,P60*I= 9G*R145]>8K9P?8.6?%B]M &;+^*YVYJ
MP,X-IW3QW#6E0"7@V!R*E390)$G8K'V#*W3?'/Q6,G/>=M%VFJ:[D:9)K9(Z
M<>U3$;E06/&FMQRTE23Q8W@%VZLKQ86#^N^?KC /6=\>_+YBA?-AA7YB--.A
MY/VA/(M*W%\$C:^0]LW22?N#.R=[,D 9'9;CE(<C!D9)"\,K=N?L7F0IV8K:
MQB)]EEZWK_9V'0YW2<&NC5FAP %9!9%UJ0K2"W=1L"!]3\^DHO=+$_TI<\<N
MIHNH8H7S%?VY^^AGT(M4!GK?:#3C^>%2W:=!3H%?)'!3"4!IM!#HJ422VR!2
M$2XH?)XC7[DEP*+*G?U^8RYRG*4'H',V_BC"E?2[X#3/"MHJ0W0F8:#2)>>A
ML9XBE[(1L,+E@"A$$ \R C#9< D'N#BAT X,Q"75:44C6T&^E17I+2*$R\3]
MZ\8=I(.1G#!9'9N.(P?ZCXL_@3)*^T<VTPR";4F@YT50SLO N^6ZRXJ:RTC-
M ;Q3@IA3K9IR*J%U(9*U]OU!D+0>T6<K*UY6"3AEMUL\/D(:#]=6%WMV%_O5
MF.",!>7?")=?W>_9W6_%N&=ZL9<!4;E?FBG_:Y#II7JMURA7INZBWKRJ"ZO1
MRR=->"10M]@053*G_S_FV ^V87E/[)59]];^$V1[%9)F>=Z<-RTG9CVUD^/M
M=I[UM#;C'42.EJ;A-;>;F[PQX<?G0#5KK48B97S\*[[$-Q<OHMN-W N4(@F*
M2D27C:)R,0D/09?- KH^ [K<N;@T)VI=C3O4*!W)YMRV70+'HW-AZ99C10B6
M1$0>/L61</G7B8 OQNO^&FMCF+WS)9P3I=04CR$=^O3$/(8,LHZ[#/U:M[76
M93A?"CI1DDWS!G+O5,O'&ZB$:ZXOS-/JS\/6+Z#COSA;?UM:W!MDM(0V_OI.
MY^/;^-AA7@)>.^,7%B80ZKGC:>]MX]_@HO%?^ZLAM5,IH1.DTQ0+/SV]=3H6
M_BJB3B0%FI6%?VHDFV;AY]ZTO[>%7XG6<[?OB\PQY6G?[T2)^\(<E=&^/X48
M?K^*X9^J$JHWRFG?YQ-F:M2K,--)4FJ*A9^>;#HQ"W^C&'ZOUJIB^"='LFD6
M_O8C]PYBX5?"]:QM_"(S1[G;^+G&\/M5#+\8&[]1:S1+P6MG_,+B;/S<"_AV
MM?'O+4:<#W\^O^409.I5*N@TJ31IWS?2$TVEM^_7DG3<MN_66O7*MC\U<DVS
M[7-OJ-K5MJ^$ZH78]47FBW*PZW>GPY5PGXT-^D9*:-.7/V[?J U:I>"S,WYA
M<39]D;"_.ZF?.P/X?NJP_2-+C7J5/#Y).DVQZM/32R=CU:\BZKAAWZ@UU_?J
MGB\!G2C%IAGVN7<U[6O85Y+U[$W[(A-%.9KV.U'B2NM^L![,OXS6??DC]NU:
MNZJZ/U4=5#_2K)HDYW^Q?8=8'_^22V5HHRH-/4TZ3;'NTQ-+I;?N-R'JN'5?
MK[7:E75_:A2;9FGEWL^TJW5?2=:+L>Z+3!7E8-WO18DKK'MN@I:#&L\L=M^K
MU;NE8+42C? [LG+:'7)W W_@R&.+0UE!??<D+%!0/!D_]M9:K8;:[.PX@KRB
M]I.G]A2O(CVU57JO8A/66/8JZFMS!A7=GR?=I]F)N?=B[>J;5%*^'-1^D&G$
M>5!ND3FS'#R<O>AYA8?#S?#RTO3>\PH.Q0EGQ<['EA\C$^Y6:0&#Z[8/#%0V
MI9E87PX2*/\YS%MY2/M 8W?[:F^POLAQ68RT+E$UGCUI)]VAUBDE659V/O2W
M=G8J&C]'&D\3W\=U?2KQ?232+M#!*81,B\P>[NKGY%"%U6R7F7[)B_F'-[+U
M!?Z)9_4QH4GRSK3\G^]ZQF3Q2VPYQ;U$SL'[)YM]?/)LH-S?-20BS_WG/^!'
M\8%XI[/7YYO_?;ZZO?M\<_?\06EW,M_[/&5 Q:9IO^&4;KIBQ?5G0!5 /:[B
MP:_MT&H!9IC-@#%=.J@W<5"*YBKV1'EB<X^\>WFDX9SD5EU5D&\4>(SRF8WI
M8TJK03]M?SC<V:;;>OU6LNQK/&6Z;[+["1'%U#9UYK@W?_F&M[BS/2:)Y-YY
M1.'A/L.+/YGPR<T--N:.M3F\TG-\ALX_/WM^!B/;@?<1A\.Q?ZA'I:7))IRE
MB;D3!R(&H]3K?X>E@)B>:SI>'>G,?PI>SIX/?1Y*<,O9G/S(!AL,[4D.Z>S^
ME#_I)H9T!JRE!)Q4K&!*K.#==TOS=;@__7T9IIQ71+7_E2;D<!DN=LWX^HJ2
MRCA#F/MY: .$ME,YYPA7M[W_;4MW21'^DG(:(Z2KJZ\8O;KM"V#TG/O)/#N7
M549B_ZHR8O!S#/<C*\W!%[7U5-(]_G#48X? -V>2#8*(^15SWMD6CR/RB,"M
M!:S@XV\WS%ZVKQK-JU:#5TI(69H#]G^OVU'[[?6E$1=%6<MOSG_@;S[TV2YR
MY,_60>Z]271%X+M9:U8T6I(W'T#NYM=4NZ_<;14E=WM-M3ZH:/HDY6ZKR''*
M6\O=O4ETM=S= *CYM">KYV2O_XKG#KY/27GI]/3#50GV<HEO/H#=NGT-D;M&
M@!+WN;?6 _G&F\O0=?U"J^3I?YACZYH[W4R47I5.CE[HFROY=-IO/H!\VAZ&
MOV#YU([(IXW][%.73^6,R\K+JBR]2I*>^)L/($FW;_99)TDE_U7&WND0VNF3
M>"6B3OO^5HBH[8/-Q8NHRMXK35SOYL?<<)C.%ULRFV]-J4@).#6'8A;)PN]6
M!.3S&[B2G3 B0J#'N/F9%=O!!G8;:KO3WPW'8)>DRON*U,M&ZNWM:U+6JZN
ML ]K4^\V96A0T?\%TW\K/P#^W47]3N;95J*^NSL(4T7H9T'H[>UMFD,(^EQ)
M?]]Q<GG3?SDCSK%*8&;I9:T!7N*+*"Y&25DWL<2<0@KYP4CO6[]6C"/25+OU
MMMKJ;^^*M*(<>@D!K,UYHT"$C:+HO%1U<$6Z'<U::T?@F(K6+U</M,JC!X[=
M/U+QQCGK@=R'XIUT'TH9:'TC)";\-QZ@8?D:W\E!,'56 ]?@CHL J@FZ;>>C
MJ1.N9P,,B0QFXK!EH?<?AU#"DTCKE6TVM\6MF /57XT<IOUYI4W@(1\4S7S3
M%NY/'S=)G8FG(3*5IDP=I.^?/7O\T\=GN@5P)1%!DE%GMO910%AE4E".9+I$
M>R1.\ =_Z)W!J)5;O_*FN%924,30JQ!]BH6X;\IHH<Q1[B@DQS:'L5*5-^;0
MYSETEOM!?E8>R,%!P[* K8+T HK/"*I5@%\5'L_0TB.@>)\6))()Q9MHZUP0
MKM:&_=(UZ*'1>2(7LQG8PN4 *T10$#(B==D0"L'Y2DP#:8]$SK8T2 8E..O=
MF.7XX%81258J]MG--ME".!T$&>0T@$#.DWT."/137>S976P -*]$D.8/C"7Y
MU9@PQ;"4?S/-J0"DSH_&*N%QIA>[# AV8+EQ&E;'WJ.?]@H<YW\-,EY<KW7;
MY0J^7]2;5W5.-'JYQ/T[^>%/%5+G<&\Q'O?G/R9@]MQR7QO.2;PHFCL?:D].
M=^JE]PF5<[K37GP0GP;5KS7:ZZ9!712IG0^1IXGT_$H6=I]L6\GODKPY?P"V
MG,BTFU_#5]YC;/,FWA75"-S"+AD!Y]S%>7POIE^_L.S9L:(=2P(C#VV6W[#"
M0AR4YS>[. 77:';4>GT##7>^A'6BE)SB?*1W?9Z"\[$EC2\['ZW66N?C?,GI
M1.DW31+GWBJPAU]1B=V#O#!/[R$/GR'W*N7<?8:\"'.ES] O#6WFW&YY?%<!
M =U+P'AG_,+B%-3VF)^'=16F#BLP&M9N]=1.I;5.D)93G(7TX-A). O;4GG<
M7>C5FI6[<'(4G&:KY3[9:!]WH1*]E^DP%)D+R\EAR(TT5[H,FPPJ*J'+4/[L
M0J/6[9>"]<[XA<6Y#-N#6Q_497ABK\PJ,-"EMEMMM==LE$4V7,0+"W,:TI7=
M*3@-6]-YW&D ]3:HG(93H^ T>RV_;._^3D,E?"_6;2@RU96/VY ?<:Y$<.RN
MQX<KH]M0_DQ#L]:HW(9355.=\DPW3A4.-[B# C57KZDVNKVR2(:+>&%A3D-Z
M2OT4G(:MJ;QR&DZ?@M.LM?SROOL[#97HO4R7H5=DNBL?ER$_TEP)K]@X39>A
M_)F&=JU>]3&<JI+J;#_TY[#%246&NII]M;=)H][YTM6)$G**OY >&CL%?V%+
M$H]["^U:IU=Y"Z=&OVG>0GXIWQSJDBJI>X&N0I%)KIR*DHK/+7!KMART>6:Y
MA6YMT"D%XQU[-D-DKENYII5L@?NV@6MQB-&Y^V0CS&(3Z:W>9NUZ%P9 >#$L
MD712^NG!N%-P4K9GEKB?TJG5&^O\E(H1SI,1TKR=_#+5.>1&*D501OHO<%I5
MKK3<*S+/EU.*)3\*7^$Z<?N^O$2^;][E8*QQ5OQ];($2G4Q7+HT:65D>[M8A
MQM?OX&[E'#S<;SYP1?QG0/PICE5ZZ++,CM5V[E.KUJAOZSY5!'\N!)_F0.67
MM]_=@:I$>SDH_3!S??-PE8I,<N[G*A53=+;K;/<2C?+-)1NTZ:S4R H/^M[G
M*4Y1I5&JE@UW^\I<'"[SECJZ==/9K#5^TL<9A9QN*O7Z";T!?#<S/++NAY9^
M32M]8=;88.YGPQV;MNL[.4Q<+6[3P:RG^^<;I=&H*=?WW[[=/G^#.W]2AG>?
MX=]WS\!A-W?7MS=/1QB(6_S6<0CS5_:BF4KL_L3,Y=/<\,;CE9DRTQ;*B(WM
M&5,T9:XYWD+Q;,4T/.-%3("V%&^*K WBW 0*]AV7!E2/?->PF.O6^.)O^<?L
M.=CW\"WX "Q+XWI(Q5_AI&4N(DPZ;5 .'G-<>/ZK;;ZB</!=^)SF*6^V;^K*
M5'O%)<''@ OA\YH.N@E>S283-O84?XYO\1UE8E@:W!BM#80,KEE50*/XID?"
MQIZ#2B-]I]B.,M;<J3+!8<\U!9:,(X?Y-R9PCG2JN'W\$Z=#T^G00N"'$\-D
MJ/B-F:MH+^#'N!X=&! +7[=A31RD'T6LS !F-TU&7HXR=W AWJ)V8J2TEG<>
M'%OWX4*^&MK( +I97 3G##<?,H[CRC^S,7U.:37HQVW)$E)M+M&5CS/)'20:
M.EM3GFVH%G,W,W95BD&E HTFEXX]ZL/AB\.(_]W348'-&JF\Q^&U4(##7Q]O
M;D@?GBI)K^7@F]G<M,D[4((K4_[KYWZST?A%N9X:;*)\"83L_60"/H%S$4Q^
M;RG?0 &$K(P:[I,-'A0R_V?# =EN.R0)\#?HA6G60M'F<QMEOZY\<VK*9^W5
MT)7?-&!KT N:&_TH'7+O%S?KE%6A[0S00,9LQG0#M*&YJ"E@<\O7T&V]P7-G
MFLY :IB@W%";XFO8C[G!E1^N$5=S9XS_5/[%+ S"N<'K;7B+ WH9-3*J.I<Y
MJ'SY6F]Q?J,QRUXC?&[NL%?#]EUSH>C<\(7=CQ;1O=:4@Q#VL6@%C D0;1;C
M;ON;X4V5J>%&+TF-$0E-Q81#@E_:H"+B5T!?Q^N29 .* *@(KQ75 GQ<LRRT
M*C $J[B:J3D+O.&_988/.BD5JO@U,%Y 4O\.AIJ;)9L[$=G<"7S^;XY8VY;^
M_G+@"I@K+;]/6I/!&1M<\2%5 KLQY(1P^TAK#L,OX &,;,LG9O3G^/$59]&,
MZ:S/T:=\PH?L>13!?A_ _8MN&.X U!J2Y%7SIX_MY+;_CLM'NHE<;"U&"4A3
MIFLC_1B>"004/QBPOCUDSA?TO?%A*TXA&5#".,ZMZ_I,_^RC*?L C&_K/$+S
M"&X]:'X0:_0Q"B3]ZMCN(>@FO6^VGD$Z3K!2$ "P5'J.2Q2EA2;_AH?4CI'*
M,/CRTG'\BH]B^JF<1:@F;(LIF"?!8V"!(0"*1QM/%=<?_1\Z6RBB0'J!;7!%
MG\40#W[9'4^9[INLIIR85%]K$TGEKD1#JQ=A])!IP<7KA'%OF-Q_ZXJ3!V/<
MK08'EYM":'NL4#PIP$L;*I[TY-_-#S;VT2(*W8O?05W>F(;K:O\"[I 3WG95
M2>U^*BNI>!0C!BZ_@5J;1Q+0HE/^\C4'M#;8/B"U#5?EZIO;7V,VE^87_D#S
M07[ =C%LZ,'ICJ>:X<R9XV((XFT*9E/T[-><;+(_703YO]C.MR#X\H6Q[0[X
M6J[N.ES<?B?:::O=U!,E3;;AL8+M&J'!P/K&PPP8E#_0L,:FKS-NO8KC!.+P
MP6YEDG1QD_!YDMVG%I+9E).Y#E?NX9@P]!"Z,-(&1:,=#774"'KJ>;Z#&^4N
MP9WM,:4Q"/S")W_DLK]\=#ZP/LYSWQ\Q-D'I%_FBD>WHS*$,$&S_0YU2/)3L
M2;Q%3&&LU_\.+,),<X[&@?5"1/M/D=M)+7K[*9H%G,Y'4R=<S^IRN9]6I"5'
MI@8:.BRPC-\TGD3D(,;D02#L6&NC=T:N8@ZBX6KD,.W/*VT"#_D ?/.F+=R?
M/FY2\">>AJI04\ F );_&=@(- ?= C 8!H&0)/[Y#^VCT)F9*;,<\W)9$:I$
M<==P/+9]6!^(2UP$_-,!DU<&,+EFNL?X7.1'83[GVG<<V-WIQ+1:-65X??WX
M_>:S<O._#S=W3S<\M'7__#\WC\KU]\='H"_EZ^WPT^W7V^=;^.TQ;9R=Z( S
MAF'I<#$?VD2DXE8Q!@+BC''[W\9;5<;\!H.P*D;PX0Y!R:"=+%1U:")KWH=B
MEKB6=ONM9!^8,+GO)\M4;.E)0B:6W)]25\O7R-6:;.(5)F_/HR)%*@U]5>G(
MSW7ZWS;%]E(?P!V;L _KOW]J%B!C JTC14R0 @G"I,4*C\0"WGVWR*IF^OOX
MF\M3/%]:,BL_>2429V6]XYS[S3T[EU62+^>ZF/U.)<>S'&9?SV.8?:>1B%O<
M"-_SD9F:%U.SPB0$%0P^JK N5I7-[>I(-WI]=;!!75P)[K6BJ"1%)88YY$!1
M[:M&\ZK5V)FB^CT55E8ZBLH9YR\G<0JFM@-N ;D2#K\SN!/7<Y525#D?NVH_
M!QYI)M*4PJD11_^L_3B<N&WW0=R6!R[_(EY8'&4EHN7[4-:^8K?947N]5EDH
MJYS&:Q#BGS#F\B5'_UO)W+PX8[D<@A_[%W8X?FCUU&Z%:W<FY-3:GYSV5-SE
M(J=RVK)/F@F_ ZVGB !R)5N+8(9.C!GHT.',Q9$70?M-M=-;#R5RQG=Y1L33
MWIIX]M7#:K_;+@OQE-,JE7E%T=^X4-[QTHCV^XKL<R+[1,+^YH?'+!U<-=X/
M(UJ-%W05FGE=G"'1;*K==A4 . ^R2N32=R>K?<5L>K7N*<C9@]FG5("C:&E5
M'"GU&Z5@DDN$H^PT$WDRNKED+<JAG+]!3QULX/Q=6#W 19-H(O&V+XGN*?][
M#;796C_QK2IG6%KEL^UI9CEB$Z>/*-1I9>7:5E?"%B&S^SC8I+D^'U*A5YTJ
MK65EWW:@M3V%;[O34;L;A,C*#BY5*A2(A(9=\JE.$0ZI'=;-_SY\?!S>/?_[
MW)O_[GT'<7O\"6)S.@C/ Y+"1U"<*0LC7@'ZC8 GT1F"%+@<0T?7/&H"<343
M,72FQGB*2#J,?&WL),+VJS&\T9[A\PG'!S\KZ^[%0VO*[TR^W&'N',OS12MX
M%!G%80$VBJC*(> ?CI 0+-APE1=F,4<SS05XC3.L%N9-K0Z;^%90\V^#(#.P
M,WCN.^,IMF#/$0%O:6F((X3?G)L@!@A^ 6& :,'8%XN(1>&K>7D00:5B6]O4
M@(T[*$PC'T'L%_)P'8-98W:N_6C/L:X*WE,PAPO#5J'P-/ 'A#Z!L!>\-R/1
M@'%X"==O)2&B@TZ,)5D7("%5W1>ELZC.I"P^[+H(-=(2\-2!VS#X65?-&.=,
M=54SQEZK_,3@KQ9U%"[G$,E*J.KIM_0I$P VJQ,ZQ\SD'/\:*P)*$E!B^M .
M!-0Z2P(J9T[P 6'0L)N-?,! >HKD8"EB=<?.H^3!%@F<ZW1VX.A@M];88>#>
M@G% ?V[NYNQ8.M]1NQOD3L[XXL^(TA*C#/>FM':$TO;4[0.U5R\-H973I'UB
MGF?R&)@]68IH5349!2>\WZU@K%Z\<C2XION)9*UKNJ.BI76SJ0[Z@YTRW=N8
MC>\K.CL.G77WH;.#R^J<R*R<QO&-&+&R>6RARF-O;[$D>_BW=QD/4Y1<U4J<
M*HTED4?*&M>J:B2VJ)%(7"LX-/:,/6L_3K$ZHE-3;N^N[[_=*,_#_SW=V5";
M)J^_V [5 ! *-I4:6(;%E!E<TM15B#N5)!8:G_["![Y@W<,\%L RZ/X53_O!
MH7[K->4SXJWRN0#![T  ,8%?'D4LQ&E*.O.8,X.%Z&&)@6[@* $L)'"5$?/>
M&..CF<)!2:ZG>=QI<]C<=@C*&Y^.+\/'$,!SUEL111W>/ ,/W,>%XA@H,6W"
MT@AH'!_CP!O$E[4W'/(DYS:]3<5RHLO$!V(0;^Q)0'N:]<2K.,2;I).I9Y^0
MX<(W04 R756,"5PY/-O5G(6*HR@TY54S?0D3;-IO! ?,QRDL^-:9Q2:&Y\JJ
M%5B5RJ&(9S8LT#3^9":.M- L$&N>!'O&OT;7/L)Z%:">_] 2T1RS'9W>1;#0
M7X9/GY3AT[7R;,]!.O3:0"E<#BB$0%%3ED8+*6LG";WA&_$M\,;T7:X>#=%.
MA,$E%<**AG2TO\F'#N4S"ZG<5YO-5O8XB%5;2)07[KJ%/?5F7^WVLO##L8R)
M#W,Q>1$3U10A_X4 X0%U1\B:#T6#W]D18ELBM9H2(G[#STT#.$A\,Q ,!(?]
MJADFU9,8%M\A33_+F@[=:3=B#AYL>/VY?@:-Y!B$>[ZQ%OMH>,B^J8Q&N\#%
M.W)\M/*]]E1+/:LWPS0Y=X9GHRJN/Y[RQV@*UK^D,@E)C[]\ Y\H*]RRWK-L
M6)1O+M<@P1'7MH49?3X/Z-%P_SQ%JZ-;4ZZ_/X&MB<C%]W?7-SBKZ_GV_N[<
M[8_G"&[[5 ._!/P,#?'R@TI*,3Y H *+H3#$ZB/-U$C/&I9NO!JZ3W60H/MY
M\1U0]HHA _V8 'A$L'>?)6CI@3GX Y! FY/0AF-R&JEC<APN*^*CMX*!5BFG
MP-4G/R27L"\F*TVZ#8^G6]#QB%D,XG:_&J[GWH>3+0H\.H=OX5R+4.$0 YZ1
M9 (WC+20?<O].$*21-Y^#(AKAPOO;7'A?P@9_D?RS6LIHAFCB)0>&YHY93%/
MWOP27ZSQ<,!&?[,C4FCC(VWE?*3MR)&VHT<*ZY.GZN9]G(TD%NM>Q]FNV"Y*
M(_7\V6X;.7L<.MDDKE!3=CG00;, IFND,EWA!YJ,?^]SH&?+=]G!!&\WL=TX
M%$OF*[8WF[R((;H7G&F89D#*R$S:+.>=SK+7*90;*8Y1O IL)CLI-SC+:E;4
M<69%M3=ZY\7.BAHDI^2R%XRI/<I ^2D&37HUY>GF5QQBKCS>/-P_/M_>_7KN
M\1+L9.43JX.!D;&)U>3ZWG_^IH(__*)90$NN' R([K"*;; XG!*CMO#S,:-(
MX9A$,4]LB+R$J\R90Z%4#")J8&?PH:HV_%@+4BL\T<)%#Z<H1?>#Z9K8;AN&
M>8$D8;&X&&G)S!T0O8Z!86-LL<7'RU[4=QBRG-,#\3W8.XD=J_*;0?"7LD^:
MQ^,9GVZ?X=3&4\LV[9?%>]!L"K&X;K]1)%I^VW"5, AB6#3\KUG_140Y%- 9
M]HM% W'I-XU?\$,$A]=4M)']RGA3+(^V8@ 5(] O+PY[X<'7L6/@;'$-OX8Y
MD6:_?M6H7W7@OPV1A*%<E8ADQ[ZJ61CCI;%=.I^D/9%'RQ-*K@$"07-HJ*0(
MEFE8-ZJ* 9$R;65IV.J,VQ9GZD9/$CXN?FSP.=R84\*?>HLY?8D$._U%:%@>
M:)KX]%0X(<N>@8B)$,FYVIK$<L!2/)+^XL/A \7RT>58D(3I+XH\Z0QNPPQ1
MO:*Y"![V?\/K-EPYRI.(C_K&X;I1W6E>F  ,LID\74@KD&3A<KL?9XCZ^HO,
M9]*,T8EIO^'B_H^/;(<;Y=8*5Q@\.DA#D,5G^+4F%H$.AUC(.] +[GL4+IS;
MPZS+\DIY%E0*%*!#*61$?A4IC-*JQ+41RJ&F>(>%B0IL8I_/*5O"E!??X)G&
MD)WH>0;.G(,[ I8 =@49B&.OI1A*F8\G?P7,.>,'@>O !9DL19*5,/D1]W/#
M,2LH_^"RK^'H#,\]15W>___;>].F-I)T;?BO5+C=<R!"T$@"#/9,1] 8MYGC
MA3%VSYSWRQ,E*86J7:K2U )6__KWWG(IJ<1BLY2DG(AIVR!59>:];U=N!R?O
MS]Y]_+^3$S#FGT$F3S]^"(X_G;P^_;SR31ARH^UMLR2SM]U*C9PQ'Q#:@F <
M$# "];?FDL"P22!\$FR<?#K>=-H"Y!$D!%@4[,OG=-E0VQM[H3I^C HP8"VI
M^C(.!VXU%IZF,EDN4#"\C+(R#XZB00N6$X,;P^KG1)N3<_!I,@2].$(? +\G
MMOGXZ-/)N;;&\$LP[J?S70C7U$SP@">@WOI3/C[8.C@.4[:KHQ \DQYVE&1L
M^['+ <Z1P1JECT%[5W+N3H\*6_$X1M@.\ K@6(P'@%HFL_X$U;CH16,EBAT7
M8HHR2#IP@[:0KW3C!IW0($4^2PO2TD54E 5U1Y09<8XX92EB?*QXH>/-'=*)
MU1Z2:_HL]N;B(Z(\$_ZA9PGVNKNMPYI,:F D3>$NM/ :H;R^=61O;HKX%(-E
ME1>\*]K@0V_MH-TZ.)CO7S>73$6R)))>](5(WL2M(!.O/\ _JS:;M&K=)^N-
M8+9&"P9!YT3F/MR<PP$"R>&IGF!(KANV3HR9GX#3X,>'N^VM_YB<:XZ.[P U
M2)0-V"&&!8#FD5O=Z;EP;CNLU[@_+8/U8RIMYC/M!CH8<RU3]C[T$[H.?7D\
MBL/MX/S+;^<G__J""8*3/^"_Z^)(?.P7*>K!JK, [C"'(G1[9E%@<\ $PQCJ
MK^M#?'*A-)#50-]1U'>_".Y]IGI3CA^ ?[:,>C*?E^K[;VF8#;AK":+9"VSK
MOK;?X&!N8O)\! [);QCFNVL_P@YQ;@?[;6H_<L:&_.@*WGH"(40Q/04KF95D
MW4G3?8;M?:3>K?QW7$U^FO#TY0(^AG#=\#'\O=LVF>49B9"\,^6C/Z2)]K;T
M]3 ZZWP;_4G[R6=A_>H[UH-/YU]R:3[%M$J8FU8[ 2K#O^/R@Z,D*<$O>*\4
M.4%8-RE @$=I3)&DZV7!0YE8XFEMOF);6T=J:6\%HU3$NKT5\^"*\C@Y[H43
MH6.PTOQ*&WSBBP@B[1*AQ9*+5Z0N%[;K'5;+,TXGWL?A'_R$3_ ' I !G]&[
MOL"I+AH#O&?B_HIG9(Z.N?Z2C58P+.$?M%-J)0XS<'I)2C:B3<<\A$D286]P
MF$UGZ<@/Q>/9B. [T7@,]A]^1SF(".T2)]M")O/8DIEHH,E,/FK:!X\Q=]'*
M9E^$386]/Z41<R'MC7.-QQLE.)>E,W3R->TE%Z,L+2]&W*HHQ*8WSK4:DC\_
M&$3<N3EP+TDC3DO2*]T&C2^YQO4YJ!:@W)N:&B3M-8Y@O:2#"Z-=AQ;J8U!J
M6-5![B(&JC@@2,AAA'6L8 K<QE7U-;1VVL#%>6JM'"632)S$S!V_^4@S <!Y
M:#KP[]>PU=Q%"TMFH_*L^']4.WBC1R:D<O##1JJ]<YV5LDF LS@$V:90G10"
M_1IH0=H22"2A'>QTL2TXF$<L_%XRT'_$?O!)MY_@J+<@J'@Y*#.4UV>_=F<5
M(\EQ7M'+$LC,:-[9#(C1O61Q,9T*YA&3,JX:7E7=\!$+-I><#MASL@%4,>;(
M,T6Y9TD,SC0PZM%%ICAZ=/VB^5]K!XE/_6TYR$%7_!ZG/5"\?\#OL8+6"MZ]
M.PXVY!G\&?V]%F*QYJ7H(LG @8TWK@(FEZ1B4S7(&(!&7*[+58&,Q&3/5)14
M,X,CR5C1:&8KZ)6%S!V N>_!><F0!#PW5^"EP)^RCW)RDX6M=D_S(;Z+$O5Q
MR+G%]^&W:%R.C\:8>CO2Z4"(J/&R+_@0.87DIRT2.">.Q+_OW<8B\SHTL0RM
M?LPJ=TBUU:LW[621\XU)F3Y[NSGNK(7XN322H:X]R[GY2>=T/J1G88:C*(L&
MDQ[Y;,[FU?_IAS?/?MW9WIF_;)T\%PX$*JE<)R*PXD 58$I[(I_CGV0/PJ"S
MNT5I/GP::.BY1T4%B2OK;_V\;6S D)LNP%$F(2719\=)1&E>K*L"1-Y#56,$
MG]1%E$OO4O ))2M?H#2N_62=_JC3"97EX)<ETL)'B[F,<OR.+K+Q#$"%,2LA
MF&.,%^Q>KQM-A>3C<4)R [3)0 TIX2VNY[4[G%%QH2Q:/FVS=#SPQ=DWNSCG
MQ5@*@%VT#[M=:G&0_-SC6*XG:W L>'XSDD3HO'@,;-%H3@QXOC/!\G .!,N!
M<N$4M3R/<_:F+E]5>7X,'^3@2UL#>*'!#:]JNPIC]; D$F,42\TAP56&+CB-
MNJ%WLA%:8UI@,P7\T$HK%D)FP,FM\K E:_T)R]Z.<0P#^V23>@)M&,;:=,;8
MXV"B[\/.SSK6#F'5X85)FW!+.X3(Z)8"QU)/!:W*9%DJ6Q>3_2',!^%_@^-P
M$N%]+N_#[*LJ7#KA<>C' 4'RF6!>06BK/XI;>8V!N0G\G>7*RK#(:U96NS#G
MW6:>45@DF!?G>86PJM[A%](SCDLLI,O*F'I@9N0!O2;4LHBD/^<K7:-/%^E@
M+.Q\PX:;ZP/.P^IXS@E]Y31QW(,;FY ?PHU:V$"[6VUE/]P^G$?(,CR\X&C2
ML@#3P) _"U-=BEO?['CQ#>X[G!QGMT$T*X87WB8)N+17R QN;I.CDCD 60Z=
M(5I0=,(NGX!=@KW][M[&0'28YIJ(B[7B9K/1)L;!7\K6;\=#7$B2#]8]UBA%
M]]'4<Y>6\8 835(?[C%LXZN,<;Z5,X0_IE6S*%S#M]7Y%H=?3^&-B^^'?DQ?
MMC:-L=>I=_,7\*HE8)B[-IB?30UZTJ_%BA?MF(T")7]JOE6(JVG=4S 52<YK
M6%5%_+E>>)$]L.5$F@\Q*VY:)$)I:Q,@L @5=A]BA00S9BPMVC#:4+DJG:C3
MN7D#+>P"!1(Z'AB(_(P[8VA?2<SH!AFZBT7JSGXDX&E& O;\2, #*XV_FRLZ
M0*HTV4/P1@R>V"#*)W$X?0DZ+09/\QD9B4D[POD:%]K#Z$-L72QS0A)"03Y*
MPGB:1Z1Z3285#Y+%FC[SB:]&PH]\M-T>?_\%%_7KJA?\D=^HK^4!SQ)=*?B:
M^%+O7_\M'$]>'1D_RO;7XG51$B#!Y__%!2GPW7C(!*,D;*F!P]CZE\F*FI^8
MYXGN1VN)Z?FM.$V_LE\F&8.\I=N%"H912J3>28H\BRY1J3OY@W?PAW37@^G'
M]YF,PB$5C+ G.[E,XTM,E>9?.8]2)J+,\1G;N/(%J]&=X.;Z9@:RD;/#<IRT
MS%/_C)U<,,W[>!G8Q,Y?2&\XNW,V2X*K-$V '* 3V$5,)BRECSNW<&'KAJP'
MIS"NW0#.'%"J"^)EZ:F.V,^] J.1<ZDF-!S ^VGI9DSY*9KB?H2C&/GLKS1N
MS^S/]:UB\[^@$YS[,3:#)8.Y'X.&2>9_B&GHFF=@7F#N9^@HS_ZP7_O#,)G]
M$?@2YD>4?Y/Q#,K?7WOLFN>^)CB>PCS'?U_ A;I3EY8&5"L)%Z4HJ>F3!1<8
M@0'( CS8C'MR.7=$""$B7(+AE4P72]FU2^=Z?!%<@(QC:X_"WPN?5\:&I <.
M[/AI<))<1J"+\0FPXO,T+L63.TWZV[-I74I,S1PU/F6.=JIR^O+3M,RL?JJ>
M$.>WZ(B<L0%[2LI\<L#ZT^9'%FLD.*R0>V)(3L?H%0B!2'A<4#B1;Z['Z(.T
ME_>UA%*5MY^!*@U.X:3@?4'[:"$\#+> 9'/Z]G]- R,U!7!_8\W +V=A32&1
M8*(<34JMVB:(Q-"%S8M+N_.38W/T\*LC"-SCH+UKL-Y,_K;R+>E18DMAOF_C
MXI'BK)E.K8. Z"/?UO1W/7R^81&5I5/J$@B^**<\3CD9<'[M&B'(#9 >3EBA
MLX_A-+C,,_F .+S:%I=N9=V,+TE,&2LT]5=XAG1*@Q8UOKN33G:TCHN2F+6H
M@+7-LJWTJV#J*!F$,FB6*2,Q0#:I@>L.VI;N_$XS*0OE_(69]J/95]!CA/UA
M848"M)X"MDG[$656YEZ%G]'O(OE#*76?NQV<8)):YY"I?CNOU&JT%>HU\^,\
M*'-[=+0I3!/$L8'8@RW>0I^6]>1:>3;]7+F-4WNK03XBH\GP>0/)S?P)YI4;
M6[7&J^BA674(JLUP"J86<+YL4&T^KP$CE=FW?I_ICZL"C:^J0X!5!6]\:.,=
M+R79K@T:;7CP%JQE3,7#98W6%C+C;[K\ABQ@@ZXO$^Z 7#Z2WB6OQS,23E\B
M=2-+C1#9?BQM>59HM.L%6O *?=L1Q@V#X'#O9YQBO0(Y))W(8]JF7XR',F;?
M),!XRG1*<0X>H4GSB'JFBPS#">W=C;E<1](^4&.>[<@TO#$-I6,.(Q?KI$>O
MJ-[.Z46[Q&)N^WK1"(ALQ][#HL@B\ -YXBY%E4!7  U,5I]LS3CM@28*[$@\
MN!P\]S(>JXS5C32!23#J7D6MYWM5,D*GG(=J+C(];SXQ(,@47\1X$E&BJR'V
M5FOX_@7LGTB7:V-#D[L2WXGOZWP9WPRQG)1S\%!*+M[B4^V@OAW%G=D$97;+
MB5'"MN=-CMJ0_-+VR.+YYV5/?%,ZOUXTR 69VNZ<$L6\,QQN!"]&9Y:UCN^5
M43R0W (MCUHKZ+>X=HJS"Q6.*2$!3M"   XL#<-!.M%5*OS^.:PN?!]A8_C;
M,W?_89\!9> 9#(_ W1U$JD&)?>WRW@N5PO(G(TQ)K*CF6(SL9$E J>P [R2!
MXP.Y >+A<6.Q[AME%$"TGN]L'T(@%L?4X\:!\Q [I7G 3$B$;6[M[:[^H(Q1
MZ(YB"8SVS'QZJ'VP1%VD1:1Q,$S?.C#$\TZP%3RW3P1NG*0TNP>_Q,-!)L;*
M4EZ!U\:2A;)53G0HMQ1.FJ$;"*S;UQ*4H]:Z*$::J4R'QR2:*%10J\H8G[X'
MQK'%"/2=UDZ;:GNM@+! .NV?.=Z'W^SMTF^LVKX-G"$/$U:5.8E_PICLL&7&
M/] (&Q@&@=!K#2=(K;B$-_]'C^2Q[:]J:N'O</ Q@^\3'CUAKU!H$6'F AU(
MI[N#&0>Y1I8&QA7!5^!OL'1P9@DNWCBOVC9(?.2,28IUX_%,O5JYLWY: VB/
M83:#R2<8 ((ADNOCMX/3,2$J8'*EQ0Q=I%L4<^OGBIEE_&N(X%)@YD+ZP_];
M(MZ*?3-&7\+AP268'WAM.9F1^2[X"?0BM =;^#?JP2RBOH!V !7>14/PY/N1
M,AUS;](4:!P.53&5PR/' (S(!#? ^#E.4I<X<,X4U4]CX/-[:@KNR:J*Y>]D
MNH *.*FN04:8HC2,B_X\UE+WV\'/S.,3T[1"?5PUF,6WNGW"C.2&8Z5[0^,0
MC*N6 J6'?8'49JKJHFZYE&?*^RFW3E &$%PB)5<,N![@./K&X_@0]T>3F/:(
M%U$)K-(J]TPY(!6UGCT;: L/90!8K+4%U?B\O=MF10SD:^_\3!--(*.L3Q8]
M?)?IJ9\TJWC9MQ]!#*F(5$-%OA]H(YH>ZREVXH;8+]^;FBDR;,BIK)3@:V;7
MP_Q%^I6Y[!$)O-X5_'U?P7\:M*N9\$3;.LK$(A2,CI5=8!.9-9ED^E:)@:)B
M$S794,>WQ(RDN">C$+R%OBKI4K$61&@IOI#1ZM.K(%2@I_&J+=VD::/-O.QC
M'R0.UDY)6&.%WLBXC O0R(K4P!8I>+H-Q(GL.*>&YN&5@Y6FQV)L"2;X<'1^
M9%+'_TQ'"?9XG=-RCHD[6\$?418!K4+I"+M280QF_PM/\:+#LO''\9=-ME3.
M3X&)WD=P)J3/R.$G$"YLQ1TCL$NF&Y+"03@I.#*?UD3,0 /:I]3S&/'*YH/A
MI+YHFX9[U!EFW7,V406G0,(!PM6 V+00 X?R&>[QIF4AY3PX&/1-1]-!EEZ
MEH0?@]\UX!(?$#.'Z'RDQA037X"*3DO[(BS2K*A1/"JQ/8W*()F:J+"P5S)<
MACHI/"L)69K*:%=_%*)GDU=R5#VER:L=9"U;%:'1N8%IH*B.7,W%I/-B#+P/
M#@IJF MVQ'K@X8Q0E$DD,>- 62:'C:A>IS 70XDCL)V$/*/S&D:>T,'C_':D
M;+_ 4:_W1P2G\5M80E004"8^>)>.>[9GQ-P+-6?YN?D49&+$+(PXAM7]N_B%
ME-)#$0>V&X:7*4ZOD)2 G,*&!8C)#)<.@>Q24JK$!XSE%_[)P!?2F2EQVGMP
M6[^V@I,X@A@BCB6<.D*9_?]4HOHA7L+!$5*.;!#E(\KUJRMWI12YP:9-PB#F
M^8N,4"E#[3 ;VDY*D*PBI>ED81(4+="7@MD([V@%PUA]B]!($8 GO P[$(;@
M)^C$'BWU=$LER)\#]%9+; LAEXXK>'C/-25)I*XYK[^G.>'F2;\,)](PE@O'
M6&G2IQ>R1.@,&WP=].I?BN)NE#E20YU7FD>J>;%3_5AP^^5U&^>GYZ!'WTY[
M&:*&X3,9\SDXL?E(_G"P<7QROKFJJ@8-\\>3]\2P"4C.*)KPB9^16 2_B0F5
ML\!R8YH0^[Y[=_S+S1\"[VWC[+=S!(33>3*=:U))7AL%96G)S4?L#[0"XB_D
M^I(;Q0V7W$!FIK)Y/H_:H6E"K4.:T#%T+=/;,LNCNOM7A0GJV)DTM;U@3$ 4
M>%G<_X\5UA \[%"R-=9M6(RSL,K8"I+P%)5#@1]73W0A0](>! R,\Q,$&I1S
M.2/-1.40?%>BD>DTY\XG94[*# +'EM'CPD*UB1935,B9XE0JNDJSKZ(F<ZHG
MQ=%?%FB4ZP^,W0J+FYJY#E/\.?G"GMK_KBH]3Q.-5VR*5B;-YW1LM9Q$!IQ(
M&$\U@+2FNP.0B.3Y_>CH#(M50#D*H-&"S,(KX]?_:\J]Y-!PF7T!5!O3-(ZU
M?7"2_KD@^A'.$)EE6^<RZ5"^"FNL*M"/W+E!BH#'W@(SD.@\WVG#",%D]4N&
MM05V!Q-/FDS7JH2U8RII109"F6<?30J7'KH=?)S=!0XB)@*926,>L7;\N8]&
MNT3F07;TL?X8;)T.?VM&2.1II61?2CX GFL6^&KZJNYOU*_CQ4J%11^*H:Z>
M&\0LC A7E4;DSVB.01@"#+"FF'VI8FS67^_(?&<*'D[)A]*I4O89*\1[XEY$
MV!\$+$@&1B_7HH]Y8'1N;.7.#L3"J^*4RZF5ED4XO0)"F/)"DH'Z&9)T-BG+
MA4^3G'6DG,,>,"2O#&*9%'I(^ CDVYH:$3^=6]]TK2A(&>];.GI-]4FWKAC*
MMP0QHC_2S\9^QYYRAU06=)?BSMT'Z\%'09*5?E&F P[D4E5*46I$+W/9E.?U
M4PUN_X;M49$^><Q2!0R)*)F@56I=D;V<Z4Z)4ZXF 9]^@.>\>7W$HX^"O^\4
M4&3H>5E/XR[M+7 *3GLA(>_BF?2R-(1PV13F<,RL*.A":5(>\QF4C;?PG&ZG
M\^JC_+DIYH>G\(=XNEQ@OE0NR'\D5\_PR '[0_Q-;HC!J;D%SZC6GG5##/IB
M0FATFQQ?S+C *0),$*'9Y9>"F>-:27=PBBEUAI=+$<4-&VX-]/M,8L),,U!R
M,.5 %Y<!FARB5-USH1=@KC. GXQSA:F/>8^2RSCA8(I%1P4F<./3YY--#>W>
M,K&N@[N,^:TAF'PR*9PP,"$+:7)"B4Y[6+W$ZH$#.C].\:GEN')0.H9OS>AH
M//M,7 4'WY8![_41S7>'7(;@P>#B"  WEXL=Q.>8S2A<R6K%1W" =,E;R!49
M-1R'Y<QD9.95*5%!/=# 96AX];7FQ$@0$(:%]MAHEU0%QGH*1(6PT!Z:L!A$
M@'IS83$JNR"3GT>#4LWV"]%5"+(PM#=N&@S=?7.>/'+BE-A-@D2:N"1%\C]T
MZT48_T^5Y27;!N>)KL'292.O5=+UV%.+@:U673??"OEKP<RO"^;5?'PNBTPU
M#T3E#JJW;*OD'%+,4P$E>=BC1L,>^>ISYX6O/GO8J[O#7ED,*H]JY5&MUA;5
MBM"?/-C3JH ],3*2!T+R0$@_"(2T>I1S\\4TX<99X9=+G1:^0[#]SS ID2_;
M[J5;89*D)57O]?6O='4I=]23=9=:L+!I)$@J"GY.6!+H'.EFI4D)*K"/&  Q
MA=*8@Z)R11\O$L] .BA71$'N)Y5/HHQ3D>?3I#^EFLH?=.W<QJ?S/["5I(3]
M!N]5$4X258Y3OI-NX^W[LS\V[8P$=AV@*0K!<%RH!-Y_=!G!]TZ385RJY*\0
MOK'WH8VF (>Q05G'E%2[T*E9V^[@Y/)0A0M<3 1'=!D6/#(V5/HB5H*)X5 1
MZXT7& J::B%9EG"H$'=CH($18AX&NL#]<R<@.'U)7_2!F1"40Y8*47^4IK%4
M[#&;R$5ZB-Q6=G[(8=5N/:N:P5 WG:LHHZQKF9)MU,UD6H]2-J,Z>>+,A2 W
MX-7$>D3?*2!B)OPXS7! AT"+:"YFA2GP1O4R(L'N F6!U7ESN>1-<Y,H#:Q2
MJ*8,1S_%*Y%H: ?._1@6 /_ [C^4 \1^I#PWU3C8MY/Z"<15 W -5W>JTCWZ
MSHO:LW<'KJFM.N*&D$J3M^UKQ7_RJ!MU;8)X#-*LVCWB/L?]S20."ZRWMT"E
MJJ((\1U#PK>P@7T%O:/J'++*:TDABO69JF!A;+P]/]DD9SB.J<^+9G^+W-9@
MZ+8AQJ:1"9.6TU+!C/@[A 6ZK$DWA7 V DO!5\ KV\'1<!C%D?2LD K0^]&?
MX<6=GG]0Q56:P>/TUG,ID"%=0U(MK%3(EI #?(&1.W=42DTQPTN9J=$)\Q"Z
M_A&K<*#M* 137_6%3WH"RFUK&Z8YW3^(#2JQOAW<Z2J5B7P.!TPOGUW3B&]A
M+G([&9A4Q\E3Q#G"$HM>#W (8O?@BZA-.7*;6RGXPY:M%1:[]R$XU,'^8M_H
M=;8=O V!9@G&2PGPS/$HC+ ;I7J9'G6^XI4R$-I11 R&2BZ5P0\2.)9)$'$Y
M%.'8G/+MO]K ]7CY"U8V2Q0I]E5U-12GJD8*N!1D"3&SN"++&VCK4>A5IU1G
MD1L[:YD63_-S"0>'2!8,CV#M?)&NLZ5\$_[:89B<;AE;?1JT%])@YGB._EN&
M6I>1LJ1V>XXMP+S$%Z"^'[5F\D0'5N].A;:!C+JQJ:D9?EIEW>.3<XKQR910
MYZV=5P+-\6F40K1RFL<APA'0=38#^GP5;F%WCRJ1JW_4>_5'G2QHSO_M_+B%
M0\^9&D<$RZ@G+[ 0,%$8FG&KLI[Y^<%.]]4]_W^6B0K:G<66U+(U6;(T23,7
MO@O39D5T04TTE*B1A/'K*+<!.![KZYG)ES/=<*3#/;'+_P=AGFD81@?1UV8?
MJ39[X&NS3RB"BYQ9I6=VW.#=F7\C_"RN,\S/ J&@R3"0!=RC^" FZ!-P64_/
MM\"E&H=?=8IMH A#E;MHN+3#4VK:UFGQM[;M^/7[CZNN(SO=:UQ8/68L!35+
M"(6Q1-B?<KEFW./0X2T<_K2GT$\%.DPYH)SD$/WJW\@]T"9%.4D152'D(2#R
M/W D")_UO+-#;F[[57<GZ&G$)1H%85C+0F/.AA=9Q&X=/!"U<3KFP9'GW8,7
MYJL7U/(63SG4_7+^^DCB41M>FG!X!@6.3#E-O?;#F&=V[5W:19K&5/L:,W*X
M="KV,S 4V,&('&7.K67ROSBWKIMFI5H78_Q+C:59&NLQD4(R';Q\::KEOA_G
MSLY*0J,7I>83\!"&,>5!ME7.%OZS!+ZX1MW86761_LK<GJ. KE4WPI.NMME@
M7;.I(^<808-R#1K$45@+XFS0R51&)B4S.YX-%@VEP'1*GT>8/2%6TMN07F1I
MUJV,WD?.C&3%7<<E7:4NY!BL*DYSZOKDX2J-Q&[GB0UT$O*\A4%SP1%H#[V4
M.I5YS(3 &.#T*M/"QL5=8;X[*B_@GR;G,>_J.X=_%24:CO$$T8>.4_RO,PH)
M82A2AB"G$%F_W](V"5?JQ%I<H#%PC<"")EUH\VH:.,(9.,IKYG6Y@U\37;@X
M[(<#A&@(X(W,HX),JR8%9?;D5FQ\\RHCR3D4KH\F0L$ (+@^/1+G(JAO!T<,
MAZ''@BQZO"O:%(>P7R27;.!EXQ9@P"1^.J\8=4CC@)X-P2OD<3>"'= 45%-3
M\=-63KXOI#,,0Q@-D@9&V\6\1?TD"<]YQ+3$.?4RD\@"38.0!0Z8 *Z%H*4A
MYDIH*EKC=:$SACW-U T,*\&CQ#1WM?@E,X)XG'#T^R;YZ YHZZH.J*Z41W<K
M0\>10$]$&F%.5#+^(L$&&.RD(S@+D*L5YF(+C5:?_^&9?6P6P50]IR7?;A^#
M"Q-&R16UG6O$:QD?X/PP\2Z$-(+ OA8GN,#-<!+I%@H@.B)#'1S%8/.QN8!N
MF/@-NQ=/!PHDX WFV6K/<M63Z#<>**E#D&[P;W28^":C/OY^BG^[0 Q^;8FX
M\@$?>4VMN2L,)%0]NH/:H\.Y2QDOS.<'"]_JP<(S&2Q\A2V+U.18N>>$ 9ES
M9^+8@=B:*VRLQ7DO3)^;!*T#AFH0MJF+D8QQG["!T5ACR?B3XDY6[%:T.+$V
M14'90X*Y)#]@'KG; "E=X8AM#V6 VYD%,S_HSD#V</0P0F1;[>\;XE(G%9'<
MLLI"B\_Z+8*]H4C"TG%B[V.E!>,L2X-C]!_ICBA8- 0IXRI$7$\Q?(.NIK?<
MQB\"4Y4>#?@L3<[&4\;:QFD9PH!U*]U]^[(EC3QN;!O$H)0N^$ S<H90*%DQ
M78_^04'2,+N?R.Z#C=.SS0"99IC&43H_J:O;X_IX:0MB#\WPF&17I#T"ZS'
MW(/95/\LR)61!8W>8$?C,)&$:4@2-@U[03V'G;T 7%M&ZLO@D:AOL7&05DM]
M']A7UQ()Y]D&S@))+S1%W:@@QJH8X?TRU#PA %C4+VX'@XTD LE>[+Y"WQI"
M@-V#SBOC_+/(4B)-KP+.'B&-G??J1%-GIWNP; )U>\APZN[2T5>NW0K+5OJR
M/7U.1(VP_W6"98E9YL &,KH/B&YCZ.-MAUR'TP8TG<5HI(1F$G&413?=!9A@
MNG!JU98B\/ESH'((JP-F^5_X;]BR2'G!GV46Y7BGG0&T<E.:-'.HW,0$]B9A
M(PXJ9'8:Y,X(F0J2L7(-O70\@FT*4!P&EG"6X:KRA49E(9$>PT%S+-O=F15>
M#?8SRPD#A28[?\6G28-?A@4PZRVPCBV7203,8(M@6921[U>:$.P-B-KBG*&^
M(TCWBLRPDI#LGR%8]PK#.)_]7_CN(!W[RN0C528/?67R2<#-M.(C%U[?06/]
M29Q/5 1U:G4_Z6 VX#L[]A.Y>_]*:N'C$%Q*8PP3LQE4B3*A&UIT:I8?TC<S
M]YC/#S)&1>&2A$6(>B4@9AHZ%\UWJ3/RW$))::R_6._8&X"HBD6!@Z"C9#S1
M]JIR84@%]U=42R^CNQ0D+;2J*OXSA,)H-JG<G%L#+V>E2:V',:A#',X$H2YY
M(J/.)X6H:*P8:A#[3<1VYV)7T8P8Z]^RUT<(6+:+64B$K6)KNJC,NHI(I5B$
M ^C3#4]\PZA&3JW4I%JV29 ?[U0,EXW$"V]3LQ>H.9=3?[Q$,5!7JWR;VD>"
M*=6;-]P15J]*TA%E8()&/>>BNYIFKWL%'3#1UTKR33EA+I<GXOQ:,SP&Y]NQ
M&A8/YD'<J_DC&VM]BZL1.&.T)_42^P2R<((\_0 OU&[0  _@&;9KP%N3?SSK
M/-/OTL4_.5.(/8MT7.O,W#OU[9.%06T*SB8Z9GBWF@%YLG/UA+R6D!7ET@22
MW=X!7QT>J0]D; AS:X9QN>T1F(=WMO$E"2'4A:!U\UH&.CMZ_?KTP^_N_EZM
MCQY85AJCP]%4LB[6%:\P%WB1080WV"+TP)<_]?M*#8>5S,',F1?IO:SR,UYK
MR8@;TL/X/Q3_866@AB'9]_GY"41!O[F>]>K7\WR6OX?#"G]K5V[14QU6HS8&
M3+VT.CO[.(+2P*-96Z+LMG8.#YM E#O)^)#^]P@R?ASF#"M)?T'(SLLPYFQ=
M YS=^^2=VW/,X4XMOZRNA7_*T][?WWO"TVZFX7VM;["3&X?7ESNZ;2^+CW?:
M';ZB>AED\=$,Y!'?X)+3C0M@'&E2)\$+!M:52_8[7B8?[[3;K8.#]K)(Y:-9
M2.QL3HHT(XBQM9;&;JN[O^OE\1'/>^_%P;+(XZ-9R3/$38P&P8E<9+[&_-'U
MTOB8I]U=%EE\--OX!P/AO594IE]C4>QTGC*<6;?3[M:GOALHB8^77)4Q]G=1
MV-.SJUN(BRX=M3[/XY1..B^\L#[B>>_MU%=%&BBOCV8YWZ7)Q1:BT<](['&:
MT OI1HNT6/N8L],Z./1>[F.>=W=_:7) CV9=%TGK1^RZ7E]FV=UYRO3$NIWV
M7ML'H+.K_'?*X,)R8=?Z,D>GM7OXE.RQ;N?=;;UX\>05S(4C;2LS#/+:WGZ7
M(+B7@"_1Y: .IH6]XX0'6'N,+!9'_RVC 8ZJZS$2A)E ^ J"/[2W)/(8"(Y@
MW-<6S?^OV1P?ZA;_$7Q01=#'SJ@R9P",U,[]())6%8%Z[\6+>T6@OH?U1@0!
M1//!9N2O9N5MSJ,V8>4R$"=W7<C0T4WKW^ON+2/V]XVX')]47L9\U;HS<::!
MX#X3B L*U0>4P_<LAR<+Y9#0HS-&!KWS]W>?[#XQ/YWU\$,]^S,]MONW:+%]
MQ.F>-\+Q EO$C-J$*9\FT; S3\,5V7%CCGA)Q,1UR[R4K(64K..XX;*()45&
M7@[70@Z;=,1>+):/9BLJ%NMHGN3Y"R>E[RZ4KF@_)CC&'#8&YB:"F7R A<WP
M,OW@]'^4D?GC$6&&-75J?L5)[$5\O>GO1=R[#4O)4S>"9GF;L>ST;2R2SCK1
M]SMW4 6]>NXI^524E 74:TU/!Z\Q/7V7A+Z-5:+-;!"5<:<6-OVL#6K9;=C7
M-H[N+(!B>?J365^:[.UZFC2+)AM[W7HLFN]9WJ8_WME1DM9^NQ'8B8UZ\]/2
M9+^U_^)ZGO<T>70U!'9AKWY [P<443.G[GZGJZ+.LG08-=5W>_0XYH<9J-WJ
M=+UOL0ITW%LPJ+M.I[G\=-SH=J[W>Y;=KUP^DG1:!UZT5H".NZV= P^2O_QT
MW "?I5,/W?U8/N\C7X0A WC)A44YS,O)@C?#;U3VC&Y"*R?U33)/QG4WY-D;
MP([W4 EP7+*]VAG\VJS\.FF"]>2&W?K$NN>&=>2&W5J/TO/"&O("N#+[M3&?
MYX;UY(;Z8I_GAC7DAGIHTB:P0C-K!*=)/QVK8.-=FN>;C.-BT4N:Q<>-8=?O
M2E+>>\W)D^3'\O^[OER^_%3<V+VAPNX%Z]%)@G>KUN.:>J(\&5$.]Z[/Y'N2
M/$56?N_Z3H)5R\HCVG.@/4[)S&\VA*RKP%"^$MXTDBRXG]A3Y.DB,2\CS:)(
M9\&MTNMTELM/Q8V;R.@%Z[%)<M/ Q5KG/<\0NCJ/TH00FC=Z*E'#J* $Z*9V
M43^'WQ9<C^ES^8^1R]]J8AK?<X'G L\%G@L\%W@N\%S@N<!S@>>"IH-XX(4]
ME4:/1K-M%YABD):]6+WZKNS!34/#-[WN;O7GO=H@>Y87NRXO+FDJ9(G)M'>K
M=M&N-QO+1MB-!7=C>_EK%IG:K</=6XWV>$(]-:$Z]:V*GE#-(M2+SJV:WG^4
M3,W,WO\6YE$_F'-K@XF"E8["3'D#>U]\MK.]T_&ZH-$T A)YWW;UR.I%;REH
MU/:N4N-IM+/O:=1X&NTVRI=]M.3LZR@N"S7PWJPWJ9Y&WIM=5;)ZT5L*&GEO
MMODT\M[L$M#H<;S97XI>.ICBGR$L]?ZO3_FSS(MH.'U5(=3#O00OLI0;1^0Z
MRP=]W7WOZ?/)?SYOG7YX??+A\\M@=V_A>WD<,N.-4@-Z,5+P_TRI8 R",\H#
MNG [L%=^+K[IL[O3"O!"JB!,!OB7W59P%>;!<W,Q"?WBN;D3HP4OSB>J7T27
M*I[BOR;P Y407&(8#%0_4V&N@G08/)<1@@!6V&G_'$!P,H%P9! 4*:TX#R%8
MF601_'JJP@P#EB@=; ="PMQL+8F2>]J9RE3PW%QVP%LS./O7;\8@O^-VNK"=
MJY%*;KTGYI7/\ GST"B!3\>P33SOL"BRJ%>2'.*S<&7P&-!UH *#00:GG02]
M*2P*> A7!^\L^PBS@L^)WIX%N<HNH[Z29\(/BU&4#8+_EF%60"1H3H*6!6\8
MA(5J!?#J/C 6A(VPUBS]$P@+BX%3ZBE\2P2[ZV-X":\N8"W#85 F?= V8904
M4WZ+BB#.+"<36&=_!#_/MQ]/[OB\Y$6]-!NHC!0>K/WE#ED1LB=S;Q'-N;/S
M\[, ]?@D' S@._]XMH,A.RO%Q9>1FENM)KU19M=S?9+@V376J1>'_:]..UM5
M%>!)U-U)U=VYU3L=4DS""[75 _;[NA4.X2$O@S"^"J?YLU]OTX,F3T,9"P/0
M-L-_//NI2/N@D(@*("3'<."PNOSOOX2_BC#>;&M^W/0_K$4YRU(4-1*><Q&R
MI[$RUW.[\^U8#8L'X_X'C8T?N\%47TSGW,5=]5WO<A?=_;/!W/US;^JLO;^B
MNTK#SCP-5V3'C3GB)1$3UW/T4K(64K*.%\DOBUAR\.8%<2T$L4E'[.5B"8FV
MHG*QC@:J/NUQ/_=^[S^&A)J$8X!I12^IJW&;^_$H3"[4]>1\PCO=5YS$7G!7
MD:I><+V)7TJ>P@I94QG*T_=>Z+OKZ;NZ]'WNB;NZQ/7*>>7IZY7S"M.WL<JY
MF5,]YW!ZX?LH+P+I/FG6(,&#M-#>O5&VW=K?J84%:<#)K"]-7NS[6]^;19.-
M]O[U8K*D/?X-.=YNJ[/G+R%H%DWV6IW=VKL\&W RZTH3A/$Z?-HKJQX-8D@W
M"F/3\.<LC)(HN6@64ZP5VNON[7#^//+O&O#"BQ>U_JGGA37DA8WN_MUO_%Y2
M;WFM"-MN=?=WO9A[;A!NV.W<"C_6<\,:<,/&[?"\?U3G-S.SS,/CC>:^9<)J
M,&/R-W&3QQQ:0MH*YH&G[<K1=F/!]98>"J=19#)0'5X$5XZV!G?%TW;E:+MA
MT'(>6L$N.8[5;3&?YAI"MGIAK@8:!2I_"!@H DLR/18,EF3*^]>#)4G!&:&2
M#N^(E%0WNO]#^TA+@C::/S0&NC+56]Z@*1S>!>C*%+9:! YU<'NL*XL+%:=7
MRBRTLL19;*B!BL,I/+H?3B(,YJ+D4N7%&):&JZ)KJ7,$;-+ 3CG!/(6XGS(N
M<,'$* 3GE,-3RARWI/IIDHZC_LT 3WK5*PJO]A'X1<"T9OCEGF2L-8NU)M4I
M9D I3]R%_22)C;RW^^+G^Q*AUHP,U9\);<!D6[62D'3;#?!PAV;5-^L(%AAD
M2%S1=C 'I28%5[TNYEP#?X;+')1*/UA U& 5^GM_IKU<?VE.3H.KJ!C!\K\J
M*U6PXA1I5&0@KR4N.DV4"!<*#-@L?&6&[ZD^%!<?Y8*M%L#?@"23- NS*1\Y
M?EJ_Y6\_'73:+U[E00HK"0L2;?Q,!CH <=GT\D-DE @D%K';U#=D'#Y&%'HX
MQ#2!Y2=I-@9]D?=':E#&:DGE^";H1U1]OZOT MR$$:BS3^H"3LTC=:U**_2R
M8#IXI*[UA7AHTA$OB9AXI*ZUDY)UG))>%K'TB$1K)(A-.F(O%TM(M!65BW4T
M4/?7;N,!?]:#JA[P9^5)[ 5W%:GJ!=>;^*7D*0\&L_+T]6 P*TS?QH+!>.)Z
MY>SIZY7S.M/W^1+ZZD\Y4/4EB;#5YKP(L>&G61W$#0'^:+<Z![6=W@TXF?6E
MR<&!Q^EJ%DTV]G>N)\F2#B UY'B[K<YA+29  TYF76FRUVKOUPYX->!DUI4F
M&V ;7EP/:+<R.%VGZ/TFU%C=]+'XU09E>-&]U:BU!^A8 U[8W_,(79X71"]X
M5O"L8#"].K5NB>>&M>2&O9U;39A[;E@#;MAH?X>A\*!>'KW"@WJM&VT]J->J
MTM:#>BT%F3RHU^K2UH-ZK2YM/:C7 R -#5)X$IS/?8,,&? >C= C+1@:H4>J
M_[,P0S,0/5*0)E2KSL^M.R%Y\:D^#)[7W*EI**_#71?*2VJ+-X%W2;6+=KG_
M?5!$]X+>=2UF5S2>P+$1FM MD+NV@R5#];FMS%0*=LBQR X/)3N"SR6U*>8J
M*4Y<C\^5 %D=%GMAI*C=:0(<7E2I>LY">77V7$4A6;8;9.AN._02]  2M! 7
MZSC-:?_G80Q?_ULXGKP*?L_2/$<LR6%4>&RL56D^7A84A3IL+#_PN1:8"DTZ
MXB61$L?T>R%9"R%9QZGD99%*<KZ]'*Z%'#;IB+U8+!_-5E0LUM$\W5_+RE/#
MZU@A79PW^KN3/_)"O1J#O0U'XEEQ$GL97W,&\#+N'8>EY"D/Z++R]/6 +BM,
M7X^VM<+$]<IYY>GKE?,*T[>QRKF9@TZ55I9F-?8V!+SCA4?::AA%#@]J>Z8;
M<"[K2I&-3OWD\++/!#7D>-NM%WL'GN4;19-.:^^@ZVG2*)IL'-3#6?C)F1NG
M +0?F%-+,S?IN_,M8G,?8"#@VG$9L2O8!M_9^;DUUP+OW@&-PS\7U(4]H2YL
M[E:?J QCA/!"5;>WWZ[>*8__EMNJY_KJJXO<7K(V]A]@ 6-XF F,SC-L<&]#
M%-=R@8AURTQ-W2,;=): #:YO\'^HAGZ3&ICT1IE=SRW*3@NR"+T8XEPGEU#E
M3#R)NL"^V[YKJ6L"5-[J ?M\W0J'\)"701A?A=/\V:^WB<;E:<BO80!:;OB/
M9S\5:?_9KY^)"L ]QW#@L#H(E\-?A;%OMA0_;G,?=J8%)U=4GO, TQN%R0 _
MQ+(:.;UEZ7CT0RQKVP#9I"->$BGQ0RSK)B3KV.RS+%+IN_771PZ;=,0-%XL3
M+Q9K(Q;K:)X>LEW"-[BO.0/X!O>5)[&7\35G "_CWG%82I[R?=(K3U_?)[W"
M]&ULG[0GKE?.GKY>.:\S?1NKG)LYQ#+7N]*PFWL:TA[;/KB^.]8W+#\Z178\
M19I%$3_LU3""[!WXV\R;19'NP0M/D491!,*!)E!D349E*M[F$+W-*Y6IX+FX
M5W+- UOVAY^7J5Z,$4XF6?HM&H<%_#9X+A,\,M#0+[,,[W2H7(>Q:#>B=WDW
M(O(//O9Q[6:$RV_8#7P\B_!A^!GSM"@/!B7==3&,8KR@@G8*TI?V(WC\(+B*
MBA'=Y*'&DSB= JTRA4W^<"Y!$7Z#?PTALLEIZ=A1+C=]A"7\M17$Z@+_ ;_#
M69(X"I,^+##-BQR7@ L=U"U[V2:)%@X/O,:;3/ D\;CP&([&*>BNO^@'?I!@
M5?(JR])U5C=(X(O9Z]&%UJ0C7A(Q\9,$ZR8DZ]AQL2Q2Z2<)UD<.FW3$7BR6
MCV8K*A;K:)X>LF;MNXS7G %\E_'*D]C+^)HS@)=Q[S@L)4_Y9M65IZ]O5EUA
M^C:V6=43URMG3U^OG->9OHU5SLV<)+BAD<7W'L[U'N[[]MQF$>2%[V!O%D$V
M_-48#]GZO._9O5D4Z>QZBC2*(AOMZR^/\;=B+'KOG#L8.NZ@-,KO.WWR;'L?
MO.D_PV7EV)V>7,S>E6#NRVC_O,W'%MQF%Z)'Y9X'%N&';O>_=AL'YL:'@Y^W
M@\^P"O/[*(&_.UM2WR8JJ33YAT&<PKYPHV5"EUH,HV^P;) G5>1!3^$;S3/J
MF_-EIB"X&JED[L()YVX(Y[/YRC3TGX/&P3,ZX:/UEP&L3$9C6?J]_&4 :]O^
MU:0C7A(I\2W\ZR8DZ]CJL"Q2Z7N5UT<.FW3$7BR6CV8K*A;K:)X>LECLVWO7
MG %\>^_*D]C+^)HS@)=Q[S@L)4_Y+M&5IZ_O$EUA^C:V2]03URMG3U^OG->9
MOHU5SLULX9]O7?$M@?/ \[N^2;-9%.ET/*IVLRBR<=#UC?L/-S?4]7,JS:+(
MP4$C4.0;]>8GUD"=O>M)XCOW%[U7>X'2&Y[?6T^^8/VS_]0*PKS2&_Y<S/@]
MO6[WVB;Y6;#_KF[][[[X>3M8> (_V,TO4P^LON</0+3(_;SM3OL78<$#Z!S:
MF8$8%Q E03Y['NZX *R^[,/:0#U\5?2J'#YUW5S RK3Z?X+3#;/^B,8T7JM+
M%:>3,6S6M_RO2@9D6?K#?,O_VK:+->F(ET1*?,O_N@G).K9&+(M4GOC>YK61
MPR8=<</%PK?\KX]8K*-Y>LCBLF\'7G,&\.W *T]B+^-KS@!>QKWCL)0\Y;M*
M5YZ^OJMTA>G;V*Y23UROG#U]O7)>9_HV5CDWL^5_<0N+;RJ<;_V_'H[<=WD^
M-D'V/()YLPBRL;OG&_\?3O]T_8TA#:/(@== S:+(QN[UPV!+U?=_?6?O0W7R
MFIA@TAME=CVWR#<O"!]Z,3BX3A!1'47 DZCSZ+N=N^:X)^&%VNIE*ORZ%0[A
M(2^#,+X*I_FS7^^0,<>*3AB,,C7\Q[.?BK3_[-?/1(5T&!S#@</J\K__$OXJ
MI9^;^>/'!>U1IS\J <' !@0/-@[2KA^&8-?N*89!V(6AZQ-V?MX.;G\@]S(=
M(C9^_D#$U#S!= AK5!H.V:NY4"*[\8#FQD7H[@GX:AC':9]ND>BG>9'C)S[]
M+1Q/7KT.8 5_JC[\+!T.<U4$O6F 2@R_&<;.HQ,:,*$C&H=14H0R=W*,9Y=,
M__;30:?]XE4>3$(475ICD84#A>,JP23-BB&HI'0=IE5 >^5E3.1^H_R]%*N3
MLUN6CD8_I+*V#8Y-.N(ED1(_I+)N0K*.S3S+(I6^&W]]Y+!)1^S%8OEHMJ)B
ML8[FZ2';(7P#^YHS@&]@7WD2>QE?<P;P,NX=AZ7D*=\'O?+T]7W0*TS?QO9!
M>^)ZY>SIZY7S.M.WL<JYF4,J,YTK@6]\K6E\?7$]Y+[O1'YL@OA[0AI&D(Z?
MGF@80;H'GB*-HDC[P(\X-HLB>XVXVVA-KKYP',TA.IK<DL^>%;6./V>C?F\S
M$/A,W8Z?3U2_B"Y5/)UMSL=>>=N=_[PC$P*PAOW]GV=;UZ5K/:C?BZA<WHQ(
M^WT-,'S79IB_:3/=]L^M1;O!H0/S/?A,?V9W=L0 OSV*,OP-CC+8F0'Y2I@4
M^3JT^_^N$I7!MI$J1X-QE$1 KQ!IHN_W\Q, JY(0699V,3\!L+;=8TTZXB61
M$C\!L&Y"LHZ=$LLBE;[5>7WDL$E'[,5B^6BVHF*QCN;I(6O-OCMXS1G =P>O
M/(F]C*\Y W@9]X[#4O*4;S)=>?KZ)M,5IF]CFTP]<;UR]O3URGF=Z=M8Y=S,
M"8!KFEE\UV!='V=KYT6G"8V#C7KST]+DL+WC*=(HBK3WO8PTBR+=5F??WZC0
M-)KXJ8"FT>3@^FMV_%3 ?4X%N,YG6'4^#0Z]@/=KMXO[Z\7B/_BTP&Q/O=@U
M[*EO'RP:$.#3K#;67X5Y,,DBH#FP0A 611;U2N[;1O#^I-J"GZE!5 1QFN?Z
M'!RP_DMX1EKF%N_?-.@CU/]6ORRH>1\.LXCH+/,@&D]BA3<'P+D,2NK@GVW2
M7[;N_/MG,6,AF<6,<G[H(8Y9'F,-Q',;"V=0/',]R>C'1]A9%IPF_72LB*!^
MX&/%\E_+TAWH!S[6MEFP24>\)%+B!S[634C6L3%F6:32=[:OCQPVZ8B]6"P?
MS594+-;1/#UD:X%O!E]S!O#-X"M/8B_C:\X 7L:]X["4/.5[BE>>OKZG>(7I
MV]B>8D]<KYP]?;UR7F?Z-E8Y-W/@H]+"XEM :UI MQIX(IX6S3D13XOFG,BZ
MTF*OVX@^]4:]V4M'<][LI>.N#N"0_O<(#N I^L\J+QKN SYZ0'0?H\%/SW-K
M^N;[&\GS-%QV&FY</WM\%].TV8!C67Z"'/C!X^4G8KL1+M6:OOG>KC)MA(_2
MS,2H\8O-3%\C2'^[_'P#N/$>*@C&@K>[M8@NM<G\);?KZT78P]JK>SU=EYVN
MW5H7S]-UZ>FZYPF[DH3M''@+NY*$??$H MO,U':EMV%#_/C-1COR7:#U("U[
ML?H^>MQ4/+GI=7=SR_F"Y)N8J[MZ2F.IR'18&^5[*C6+2GQ?N*=2HZG4V:]-
M>UY+I75(2"X_93>^A[1> !^;3'NWRP0^A0"N"4@G.]41.]4(-1A.)EGZ+1J'
MA8JGP7-IMF'4Q/M"2VP9N$0-IUE91C]-\BA'Q,%T&*CQ)$ZG2@69*E2"H(5!
M$7X3H$.$,NRKZ!(^.@.EB,"$!D]QR0 *;TL[4]-83+ZV"WEYCYBJK06 E]O!
M+19UX !Q<N'QP?BJ@J19]Q)<GF!@1C,K1SC--$D4(64&5U$QHF_? T.N.C]J
MY%$\W.=2[1%HW]U'X4*A?OV").O)"Y),V;TSX*Q85!@Q2BRSN4L31L1U1'E>
MADF?0&,1MQ/Y+(R1(<FX(D)HDA8(T+J0S7)]#$V!+D53_!!0I6;H:=(;978]
MMQBH7^#3].*P_]5)U%4E $^B;F2IV[W5.QU23,(+M=4#GOBZ%0[A(2^#,+X*
MI_FS7V]33I>G(1^& 0C2\!_/?BK2_K-?/Q,5@'&.X<!A=?G??PE_%8:]V;7Y
M<?_I85%ZS[+T,LI1[:+,2CKP<_A-Y1ZG=U7&%I<%U,WC]-Y,PA7%>&O2$2^)
ME'B<WG43DG7$,UH6J?2 I.LCATTZ8B\6RT>S%16+=31/]]>4Y#$\/0-X#,]U
M([&7\35G "_CWG%82I[R4) K3U\/!;G"]&TL%*0GKE?.GKY>.:\S?1NKG)L)
M1[&HB47#4P0;OZE$#:-BT^WA:DS+>4.0 #TJHZ>%IX6GA:>%IX6GA:>%'_":
M?V_5TY31%AQ8H5F(V5$,'%_XL1$(.X*S9%,N]0WGSH;?1?\MHT%43&F+Q^$D
M*L(X^*3RM,SZIOO<C8*69_.WY::C'.<*[C82<Z6"40B*(\Q'='+T%P5G>1G&
M.)U (R[5";'=0SLS=)5F7Z/D K[&!PZ??MYI[1[2/-MV\+',@DD&?!U-<#Y&
M/I3A\S,UIN>'&8W5#"'0"]*)RD(<ILE;( R7/.Z%LSHJS/J\OH&Z5'$ZP>_*
M>OF9^$CZ*4_YT-0-2$F4E" B_33GG8!\3>*(1G=H9&Q2]N*H3S\.DRF\:9*"
MAH3]N$O<#OZ-AW0)_XGR(LU0@\(YX(IQ"A*V:->-DIJ6%R/Z;1Y<0)P(OU$#
M\W/GH[R='N\#WP?,.XP26!VL@(>2\C">'3*2#^:J7V;P,V";?EK& SRE,J;S
M&D1QR9-O*:T.UMS_.DKC@<IR,^M$$TD\P10EN HU2%2> T&K#]-C4;+47&67
M$7X-SNW"V<<XG.)'XW*@]!;A%/$WLB,:C[I4\/<"#RDL[)L*.-%BYASIS/MA
MDJ1%T(._@>$*:9@JQ.-RS@GH&,?XD? RC&(:^I"AJW"<EO@RX/!$(:'@^? ;
ME8UAR?T^2 E]&@ZI1':#0X9'Q_&R:<:*<NAVMU_LX0-J7UW3ZOTC-H24A[#2
M((C3/(=E#F&-+I,#?VV 1NCL$'S-)GUYX_DA3_EMS@[B':/V*7,>T'2><C\#
M@&;E9%XWGN^]>.$NJMW:W>O6+6MU.>(HH &W07J5(*586X"^(O6*^A+I,8S3
MJ_LG092#90#O!Y_0 Y5^]?))3L"/C#4G@W[8W)XGWN)B!?JPKN6]M6"9?/73
M-V+Y+IW[%0-?"/;T7>E"<#-KA;S*#ZI@WW7C"SBOF^B]?C11T!'ZD12JK5NY
M\#:<;D#!Q!N_E^4U" "L*<=KHIO[/.!F8M$NE,E3RBE59=)+XX)K(.Z=6?SQ
M.L>[<_V=/@\MBT]E'\]TR/_;-'AC<GA>&F]"8O0W0#6+(IU:!&%?);T?%*DZ
MW_F1\:,>M7#WF&EOG?46A$?M%=9!X@V40.+A]R99!*P('!J$19%%O=*43V#?
MX06GC$.&8T1$QIG"()7;0MA1O\SQ]V&_S^49AF2D9^&*L.R7%&FV=%GWA<Q<
MYW2N#3-'9O.AM?$/PM;BL I;LWMU+<XC89_.L/(D+'1AN<C"@0*._RK58U/H
M6HSIR'5D_ P^*D-!EGX$4YT.)F76'X6Y?0[(%1S'$@.0+F3\.O]NY1G?UK3<
M(O5#,W\%")I]D^LQ3N=9GWDQA;A@(%7<6:33N\";/B(3KS>LZ>Y=JRD>UO0[
M5)GI+EM&_54/+5]FH"# URJQ@RA,@F%<]HL2[)\+=#Q,XSB]0@TV!!669GD+
MVVK@GRE"PN<O&U0WK\9@NP^-@:3?\C!9D[]CS:?R#/E2/AWWTIA6=M"%E>'G
M:@LUM>O*PO$D*"?LDGR#KU+KJ31^$.@U=IAATQG9J;Z2WJZD1/*7F<K^]M-!
MI_WB%;KM$^S+2XH0#4Q^.]7WD!19*D+$*KF >$BWW-"!]Z?]6/ESO-,Y7L1I
M#S@6N313%]P@B6Y/BE-ZHL/2LB!SQZV.0[HQ &+0092C*^0Y]VXG;M4&Z(N4
MW@UJ(XNP+U;I7M#LJRKR5_@/?[AW.5QX)=I:5 MH1<4/!TYE5QWL[_:#>U/W
M>"'!;0.G?]M>;;KJ8SR).9TT!@D%JY/+3R&T4DX_,3<IY[9MG1H56]*'3 <Y
MP1/]B_Y*G>CI )R<8!Q]:[']&W"O-P8P^#?PO+ESFC1R2UN_\(*> "0;J7"P
M';RW"2^\(*)/'<U@#"7]1<O-RPGVDM-[8S.;D%!TI7O!,9!;MFC_3C3%!F_*
MFS@]X=(GC$<;VO9RCB]SR@?&W#"?NDW\82&>BJ8AI6A4?Y2D<7HQ=<<"6F)/
M]=T=(;6 NPQVD:57CN$M5#B6@0/*/-9\ QX$?,C#$I=*+R(G>JH!+>9"I1=9
M.!E%_8 ]H[YJP5<AEG.RH+0FX 1B:GZ-ZY.!G,-:8LP,./R*.Z?C&H!V0%U
M+I>;4[ </SO@@$=X'F:],%'YUL=OL9IB,@8/LK.STPG.Y?Z<W9VEFPBZ+2/>
MHND]J&EMQ_-/5$'L6G]WT^&NFW!L=3KM^;2+,XRR(,5?=ZO7K1+T,\,^P=Q(
MSX*I'=W573OL(U(9]OOEN&0Y'*AAU(^(99[O[6]W0'O&,2R=,DIX;Q,'AL#'
MX%"!VNOE10B" \R.%\^!H/;  :/C#'M1C$H0Y,G(%NX^N$B9=8%K,[[+"<\(
MR$4))<I2T!D.,#JEL-38 -.M+LFH* ^ X&-@IZU_T6@1)K 4Z.Q_CZ*8!%B&
M2B9X(U1_5C]/TISF;(*>FJ9"N02X*BBN5'RI^8>.&!_.VE^;EUZ91S1#DY+J
M+Q,63CIH8,=T#-OHA>R85I0+62)6(J"9X.F@1$8T4B/91& <*:#8.2"[:#,]
M53-!X[R&+FX#KX)>-"DS.)?@,LS(&;:92M N2:[M6%[BU%6N9X[,P%(Z'"HT
MF&(BK_1)X&N8#]Q;D43W::M7.'--;DI1YHO,6!->N:3R/G@^+#3C-,,/%6$4
M\\# =O VO0*]G[7PF1F1%B>!DA2^"_J:M""/&BDS)@1;Z@.-AF5,HV6P6-HU
MS17-KYET!_R*#D)^R+-">MJH99YLAHOX89F:F3+"?1_SH%D+-S<C$GQN^L5(
M?!QJ&F*\PMED0RN=B;%:G\?,8O&\\51Y)_"ARQ3$F%]B!CS2_E<L.Z"!XOI,
MFIDKKW*='(#WZE&\4)C+BAUPV1#$#$]X5>W&QR3X "X?Z=87I%J[)/>4>26.
M!**%:$$UPYY):2<XNL@4NX<;2'3,F71V7IV?'='?VJ\V69CU4!NP"5U/IP:&
M''FPT4_CV)H1YSFG^C/F:23,H'21C5AWH'["19 ;E:N80V32A9H5S6-0#D+D
MATM4KY,X[//:'4U0V<>9?/),?]*L0[0V<!/):A]L)RH)]&[PK. U%["H"WJ-
M&0KE,3TV+V3GT$BY[_N I0;]#FWW:DG#NIX]J30>5-_(DZG[.\8*TG,K9T?.
MTMD1"-Z0=0UY7Z0>W(,!WY\W38FPH1(=3RG1 *N=XY"OQV0EJ1U1,WL9D764
MT\&5X./G3C5(^U)P3.<YD1_%.T!-@RG;-!';.$1#D23 .5D>9E/]!E/*&<AQ
M%/81"<Y@@:W-*?:R]]^A(@LR^7R[\S,*/CZ['+>"23C5XY9@'U#[H'&,<0X4
MK'(<R^QL=:&NPB<)RD<A^L*BFT _PE."<U11+7P[)7 FVOG'?_$@*_V2X@<Y
M37HNY25(LQ&YV]O@TN&*Z27:KL(_0![0!U#?L-J%G]MS/H>W9!I;T!*700\$
M.V+#)A5WXYYD(?/Z*C%EL;FUR0PKZBGQ;@YW@"K3F;J;4"H::M-AC@;\._2;
M- OUHD%EU^YN4!I'T06R)H414W1E$K &]#[QM4+TG#+^H:YELW5&>TS1!I;#
M\5WXM18^%(V@%E%T/T*D-U*"P(%%7IF)09N1,0?[8>O>(&B;L]Q1TOLR+<,J
MP=(X3C'+!;3.G#(XFG^*QZ'U*))SPK[/BMJDUV6FU=%MPIEY>^6X5[H1@0T%
MN]"NVN6 Z)&-5KW:UM7M&8<1G.,QR E&[%R.AB=9\9PU(:Z5NM;8B<[2V\>9
M<)Q_+>GYI-2%.V-R(2%.*B)4FG<V=UUC[K0U^@ZU'F56L1LU_CCZVU5C,[K<
M\76-H>RS LMOU.V\ZEMI=%2# Y0/-?A.]>ZL=(7T/"TTS ?A?PT4RGN.#;#]
MQ+$"&YV=S7I3L-'EWRR)/:@RW0WF@5[CB+)$HY:\LUZA40913JR%Q::<]2JB
M@'!ZP@D%),?6/NQVF4G'K*,K\4#EXUH]T<>C E^DOJGQI&!>X1=R:%]9G<G@
M;82;&YU-CH01,03V]:F$?>WM[&_T-DE9EO&%8)' 9VC=E"0(XSRMFHG*VZCE
M.7?-A,DL6B&Y(031YT7? AU!>5=8I=48KG9@C88JIIRDB2M7+I&6VLA?#TK@
MQIY[BVPY**L3SLO4!)Y$HK?E((=#^YV+I'_ SS'OW K>O3MNU5 ,688.G#0;
MXZ2@=%A1DH2\)!= ($F?,#-D*DI:)D-.=$;&:06]LB"9(75O8&-:)C*%/V6A
M;#B?=W9<PU@-$*I&9 *V[C*,08,^W]G>:;N6@34L:EY<-_Z)]1M049W=+3)T
MOE'M<1O5]GRCVB/"H1VC9>F#U!]QGSV:ZA-)3:P'&!HVN VBO%_FN2F@)6$\
MS2.C3%QH*E%JTDK"A67\F*W4P/=ZU+A-.I*544(B0$:UKB:A?5)2B3VET#%4
MW"'.(10H 5NK"RVI)%Y *RFY79R[H'2R]9B^)!1^G>/KQ*?AQX>.3YTOJ):(
MGZOCFG'X59G<%>O]/\O!!7^6$]J4BA8#CO4-],H$8@O]C1RL 6PXCCBG':&A
M,0V&.J>,:;"6G+&4EX!$X-YB=94]3-P_9=GH@?19YYF\35DH>]HIYO/M?C#U
M/YZ8.GP/HN1PH*0,-2S1! :X+-TXX.3*B4>XZM%"<D<)FK6DB(T_2757-).)
M>)7;Z+N53C,"%[T'$3F7>)A9Q&AQA(M5V@3A<OLOUP@>$NC\Y%C\>S@1K8H<
M_G8X#=DKS96IFK0HJ#8=%B9\O(S450MB5,0$'"/_.>XY_C.#<#;^/LG6-5IZ
M. Y]<%^(/$O+@2ZH<1&MVAUK]\,L9_;,?AKYVE@7=9][H_8PZS+<)G6Q/(5/
MXK>,(TYE?_7-D5EB^MZ4Q!M/5IHQ(#K"T(3U5^UIM-PRCRZ'5EMLEHUS:U_R
MB753\$GUTXN$MKEDV[I#*T[&F_Q+:95<9W_>&+H[3L,Y<FV8#?+@MQ3^"#;>
M')W_MEG_B>,4]!ZP/9>,),P].H=@XW,ZB?K!_LZ^#7/U^9-B1%\L"_LZMCR6
M<CD7L><7?X5IERO%63M4M)P*!(FX2%-82)IIH$I.W^C'T:X3G8,CN0#/,-8=
M7$:Z0PV?:4)96]_N41@6%3$;8O6-$QPRUX.:;&X-8+12K%Q#2(596[V+S'(>
M?;M?/02[:GB_%%QGF_+1'D%</<E?!AO19@!K3Y#HIG,*'[>1;^KI2_W(5_#I
MV8\[)5TG3,,OZRD?>1Y]&;YM-T3QHE,MI!P5?NQRD[*G?=VW,?<AH\!O_W+"
M:H0'+^"*#<QOX8ZQR:"(\IMV!P:\,$_'DCKGB+C% SO5F#/F^<JPG"3.5(@M
M O*@EOXNK(G+@OC;"I<Z#T-? YL\X>W<V.80QC6-"W:Q=/KX#HIK#/_ MBEC
MV9!C#.=!2+C)U9"2<B78'UA_1.*Z2W)#/X#EG#-X*$8L%N JBINGJ<=D6/1H
MRM1K\K&?1]]:]/DYENYM+I".ZLK,TE!9$$.9M]:_2O-1Q*IJ9H<L2GU^-SDG
M0 "LWV-61H*0OO.R6[W#W9@9=10=H(.2N6W:M5W*VE:5HS^CW6!/-,II(H'Z
M"VV,-PGS7.,V6P- $6<^XA%B1M5V;1K#+BN,2W+\"3668L\')MG#F'Z4#"I]
MY,#:J6X7,M4LI^<TY[<8;X'3WDYX1DOB3"ZZF2Q5^"[4:\Z;3(<8Q< )MJIE
M)!VN1#@]O_)(\9%-HVUONG KV\$YG,Q$XTV#-1YPSRVU$X-USB[XT?;(J#&0
MCXVX]DR:BL4GD2C3<;1U[,IHY9FB'\+Q#LMX&'&I3-Y',>3,XX\QKH =V<=_
M,H%QYH33V&^*&4_N2@Z_8?#$!56,$%"QF"VLJH#P>S4]K+-*AYGKT30=2^?B
M>CH]EN 0#%PP>-W2+Y2AYC\>5:%:,SE&%);KKQCB(-,;)T-GQK7#*;F*+(VE
M*9T-N^'7[_<ZJ\V4!(ZA%CB:1E97E!G.Q3T2.(8HX6F-"D_,L@360+=BG 9
M^!(@46CL/.LY?J1*+B3!@#V2(87ASBRDQ6N8F3.H-//J-8$&DL=FM:P3,IVE
M',;*7+N1K #0SK.22F=T^\-PCHE,5I1S=*I[P-T;Z+,P\@)S2Z:*,DOTX6,4
MS%3BW^J?,O6V92SJWXK\T## )GP,<XWG(Z[-&'Q%<.N-HXFM\,!'!/IA]!F^
M5T]N,#?9.R4"L) 9<&4 ?^]C][W.8>KLDG&F:$/S^_&UK$>J9>W[6M8#L]HQ
M.5/ ^Q][W&YF4D0ZEZ%S1"NJP; O8S+!J@]H#U08?1D?&T02!>OY-O$['80B
M3B;) :;Z /LS!VC,&.5-"KXQ)2NBOZ2PPFT_?$N++6"9L1QX!Z@>SM#9^$4O
M2D;:TS%VZ/&@$[[%++&G^F&9JQ]X+4\?R>9=/2[Y&!W%FN[K)6.4!6(A-/PM
MC,FH+=FFOO,F*Z>C%4WF:_!M^,?MEH @R2U6^GAZ<CQ2K.-,(*8H%N5D4&0P
M@SJ3@P7G"VPSJ#X1/HK$'/"&&:[DY&14>0X^V:21YY.6TDBH73PGY5SMHZ$1
MZ.0RU2D9FX?D'=GTBU.4?=[=.6R]V.L(+E2[W7J!LXW+?+E-/;MD&3JX3G?:
M>]V5>^80_*,E^)+M^BY-#PO+".X=7:9K>5%*&=4Z^3O<;&8?RM5$'MVF1^FY
M-%#V/0FU<F=2.W?C+M,10=EL@RA927Y+F5CL&'KEW--PS5J7C)KUP2[\DX()
M4 /_U&7<)=O8O; I4KV6=X"IP,D-<&S7%)1,EZ+3E@B\9UP:)TDC '<SB1I7
ME4+4KA,\F8- H/TD78ZW+?QS]<*>TH%W77%0U>_+-N&R#X-61\T'L-*Z#9Y@
M-*'?5*/*U7!POC 4A-.JME1[NDN/S$ROULWM(!&U0J,&Q-P!2<V7[?/MX/>C
MH[-;]'-5&J-F.KJTSV [NQ+3FN5X%GVY*%/&]6_9OE+Y6L)S+G?IFN(N-MLW
M%7RDK%B:,&Y +\PC'LE7V M,PRYNGY4[*,W9+Z?<4)4N'FD2B!('$03_6H @
M\]B+=+I!^()3Y#'"GS&VU,Q'>-"^%@:V%0S#2'J7N1$>&YJW.'<47F$W1<NY
M#E@WS3GUETJ?G8O)1]J$8 8JIX 9*2?5A,YL%BD]-02_U&:<:Y?SS))A)!9'
MZI(/CC1=F*<)#\%+7[]N)V(C;SH6B$1TPL"72 ?;I\1]>:1GPRPC%K&G0B/R
M]7V #^U1:GCJ3P:>>D55T=$\$#<'U"3)@YD 95P#?93J*I7.PA>FU4W'85Q0
MT\,Y-ETP2)4>J.&Q*WP2BC^WSFD0)6."G3568)BXVT+IK#BM1F,K$!_9)9EG
M232E,<M0?",J$SE*@5F:6FWTQ)8) Y,TV=+SCJ+":Y=Y:JPY:R"J#:#M![%Q
MCE/[$@;@P:!O.&+KO,]*<,N^F!78%<YD$!1)RV:K[>*B_*NH$QE<LX@/V)LB
M6!)8/ %GJ>]Z5F], <&Z:Q2RPME0]:' (C0OHE778D8C6O+6$_W&8]:Z[[ 2
MOG%\<OQN,QBG Q633B=#%M*B63U*.EYT/=5U"FD"C1)3/Q4-A%I'ZLT0<$?J
MBE/SO91C^PAV=AD-2H$0M-.KP<8D3>--45P#'KNE+@A[1;1DJDR^_^C\..AV
M]MF;HX04L?2@DL'G)E1B:G/B%:O#8RK$:*#KX3%Q-.0KH!TC2SJQ95@&5^,P
M"9CDL.5.)58:G*4%&A$.^F&.A@PS$7KZL-*60)PZ!H.]=!'6';*LE&8QD'.H
M\("3XJA/BH,%E=1&A4B&Z(3[@Y.VAL(2:=@@89)B:IYZD2O/H/@@TN#X<TJ8
M^(AY3"X<9PYFHUAS>X+;&&4ZERK:#+LX%!; <7S8; $_X@Q&3$)L@BZ5?8<%
MM]":B3P"3B?@X@II46,G ,[X+^/5AN:F!P-I4Q"3/29+K7>QZH4O5CTPJYU*
MG!"M;+SJ[)!L&[GHQC<$_:);8K#1B8'S1!$@S7E$L\PU=L4PRO)B"\=%^6\8
M 6R\.7WS<5.*Z-N!^T(R<WGAY OA54.$0ASICF].5U8*8A0$LU-'(^"V4$\.
M*W=D<5LOHT[8 MJR95+N- A -L1B7:9UL;3K6,QZHV1CHC2S/35I#PY0Y7WV
M11T?P[B</%-CFODYQ54-O6W"2\RC2>$-0YTPZT=9OQRC)T_9NHKMF82(IUO&
MA'YA>0>-#L87/>0_5D"9L*8:\#OXTA8-XJ?=)GM"U$R4\R2/3;[QEFCI3J/B
MDC%.[4O> 3-LO:,4YA''WJ<F?W+4%Y_VU"8[^$-+MO.[E.&YDS_&8XGI6"0E
M08EJX]SA:%6425*C$ ^>8#,H;L R(>%D#"R&#Y4.(W*2:"(1?\V.ELOIAM'%
M[Z*@R'"U=OU0KG3D8#(IU@DM1I*5XGA4@B>"XZW;EMT,!V&,PZQ?XD36G)N3
M;_:FCC#5+"0WUTJP?B@33#%*L<>.E]G%Y@[*)@=2')UB1'+*Z:'Y]0M,#2DP
MDZOB#2%*#*&NF.W9I+UNUB,LG-SUX6%;'$W.9ZDJ1RN ,PC?D7-^3QJLZ:,V
M+\>/<5J\Y"%6!=KDH,Z"S6]31ADD24A@K\!GVX'&NYWY!=&1&M@2<]-#;'"3
M91!WEA0<AS/;Z1[<:K:Q-3.1Y.0-7Z)2_%/US1YKIX$KP\ .#]CP!)](9@%.
M ,,; DF%^#TSF6W1Q07V4>:O++\(FS$^E8PR"_HSZ@4$:&64>N?H]3'PXRM$
M8T8W:5&)_F8";[,YG9L!Z05MDDW=TV@%XZB?I9)YPK\MSKI4OZ>A.%V 3EHD
MMC\DZ1R?N*S.K?#V!JH"O'/.2-P)&WG9O*.%E_I@:I>&NS5NI#M_#V3 L5OF
M&M2U4YR4&*0X@+^,EP#=WM.W[34,K(D#G_J(CLZ_!!_2;?K-ULYA*SAE5'XC
M7*>L=3Z'WX+79K(_#S9X /3%[HY@/.&#3,D*9,Y I6&QB8K\[%Y2=2!TLFXT
M>VE!Q135L B0"EY)70*HRY,^6"AYA!V&<0!^W9?071:VU *N9#2PJXS<EZ0,
ME9KJ_AFGLH&H:HR,&V%,T5,0@U+#.B-_F4-M,Z#/[G9P$F;8WS<0##2\DPV+
MP!-,X12F_X$?6UM@([TL<S7,H-0K)[2B:@LB'VBH8K;L A97S<@3AC&MA/8L
MY*4+',DCP!QJ (8Q*SC0(X7  5WU/*A^'CG]T,NF+>X@)P:BB1'C%\C)[M8.
M"-%KR^*2&1-).=?DI'PX6<2-\[)7D+QT.CM;)#+PMG^&P A@1K@-SGG!WM9.
MFV#DY=T8WD(8I.=Z+?,2RASQ%!![4O9B>(/!+">Y,@ ;%?&DV:Z*B%9!.TR)
MP03@\*$+BK_<VJL&G)1BJ2FMJO$D3J>*00P4]>KA_.T +YCJ1_(O*F [?:(M
MW>8)K@-XLQ2PT7D:\4 H;8/V!K*%6Y(F"ZMVG%V014R+"D3C; ]I@ .2%[:4
M01 7D:;H7,=IO0[Y#F6QSP= ?ELT-E^3(QC"/N!A&$W<_*@7V\'1P$5=E*/!
MCBX54?#1X];CB%M,;*N@!I&_H4N!N7!(<7:U5I([6/XS;.DNA;Y9S+X9U93F
M7;HR53]3[B&KS)]>O\:;5:_#,Z0:X^BKH@P\E@/U>TR!Q[$K \?H]11NW1T$
MO!WL1TI5>78U3#5)\A+88FV#-VDINHQR&T?PLE=8[?ZSC+467*!R02/B+\W9
MGB;@@)=TN.0X=%XY)4?KG70[^YLO@_<<ZS($]S"H?A*YNJ8U@*33]&9S0D1F
M2!'XL7H_13D9,"0L7^U0W]\OG,A#K>+TD!10-*0A74QA5A(.4FX/\I$"9V#
MWA!F01%"ACK1!K:^J N+-GZE=)A3JUY0H:1.&5U=Q!H'3W\ONM';-&6'YESL
M*?RH9MQS+<P"_<@5:U=+7J,#%RJ_ZQ0:.DE5A5:G8ASM\GU"S<%N*N"V/.FG
M?P6\09Y@:-JG9L!^;M:*OB#W. 6Y U^0>W D1+R>3\@=%N'%,_TJL,^3.)R^
M!%V!UVP]"Z(!G&\[ZEKXQ%.0AZ"+]6D-D"A__@OA4J,B-"AP\(-8_]N-=H\H
M:A7 Y4]8['; %NV-@,MCG6M?\@&TT!&JRCZU*ZS"E@R"YIWY9_<9\PV$]<?<
M<LZIR3.$)QP@5VP;TB\G[N:U!W9BN[% GUA96'08RWH(=\%P+K.9]CXL$"KN
M[J\<5R4<TF#FJ<"7RCGVW7.<F',D(/6H@J6.H-]YT.Z&6^V]#;5)7VCO#>1?
M%JW\1,\F'/6+3;J/:N@6K00T"SO<J.:C!@SS B_[%^>!P&OYQ)ULL USZ1KC
MQMQBY0R24G"ZV5ZQ:!J)W S=U7Q'G6Y.M\$8+L66R(81UWKSL@=.UX)]X]'A
MU)^>'6UI.%'\*SC:V&[PEW3#F]9XXU4JQI76KJ"D01Q$^Y-C>UTV444JQF-G
M4-"]:H^]Y?&X3*C>9_ @+!M5>]GIUB"Y5^+DFT;F_S@<1GT95[&_M]&0_+YE
MVM]I&U0+ZHO/B7F>3.Y&E2-W MME4_5W$-K?+$H8L)$54[X/\@=.FYUS3$QS
M,@"?WQ*IJQMSO:7X7^&U=Q0.F.C#]N%)<[YS&1[CHNC9:SUCZB!X.='#%;B;
MI(PD;V&NAS<C51A(NK?QZM@HS#7P,@UZQWBE(0/)TZV&L\_'.RZXF*TPG3>&
M4%/#*]4>SG; ##*C8/$QU?.57J/:21J;D[E9I>D,$Y5EXRDW-L>QW8K,T^:M
MV5OR!#ZU=0WNK%/R-$-B=8FMV<F?&ECH6OSH%1;6.QB:@<KANZQ1=>*E5D*P
M9;4_BM2EUK#X3=1_ANLU#K0@I#D<:)H(],@,7BDC7\NG.3!?"TNTP#:8,QB!
MXJ7"E%D;U7:).]#\5.'&]24FSN#,S$@7,Y/<;2JII1ZA7[G[XU(^<J+9A[G
M<BS=(=7+<7AY>#"W.&N":Q2((M.\980QTV8\!SGI<Z*6,)3,L%A8F3")\HK)
M9SP, P09);-9DQ[(Q#!B,0/9RZD]:=%2J>> 2E;4DQ()9,9V<!Y!$!MF?'GO
MC*MF'G;+DT;T"ZMV!G+?:Y:E!!DPS,)RP,>/#Z.[<<R5HZAA-/=0BC.7&H#N
M?\,F2'P WT>*EXI:N QLTD-G<]FD_]H@X[W6M_]V3-.I-DL2:00?T2Q9^_M)
MFZ65"#FNF^.J,]UX>Q1?X*R2_I3ZST)W4)_$6O]>ZG6WM_0M-NF.>-,+'<7*
M4BAWW!)7VU6ZLK'HSC#)!NO[::-QO3TW(M2CL=I+MIK8;"=RP(5[\7.I9E\9
M'YOW':[SS:ZP'#J@]YD.8^M_&15A$NW.H&]+&G!;VKC;+MIJ-;+J2+BEJW.I
MMJ+MI[7@1.V@VH;ULC'#%<ZW8S4L'BZW*S_GI^S^C&KC'E.5E ^M>0O=A0>D
MD"T6Z>0^7LSI)_<9\J5\.NZE,:WLH/O*S27.+/"&==T[/WPVQCT&ZXG\J(U\
M[L;+S-'*A?F@.^10/@H'O24OAZR3BN!KDE[%:G"A9AKKR E'AP ?8,;@W?A8
MWSNE5T3S4=3M2$$*]D6"FTQ#>3474[3TD*:^%\3B"$:.+H'S230TA#-PP%/?
M0:XJ+1^#$CLLJ..P=8?,_:.(L3#0@WCQ3[" 6[VM42?_5**[?,KF#,<S(S6?
M#$'5(;&X[C37YC8O)SC(::Z"&J=)A&V[]CH61PG@!_ &&YO2&):)]#%3QD4:
M95"[5*(WE'R\4I9FH-"CYU@?]8KV#S3BUD-7V.[1 [@#J$EN$7=FW,JAC/GK
M]$Y+,#]L2TU8]0B%@/,>X,T-- *A-O_\ZUS/[WD1)YOI/==YG]O4,T()5?39
MTOG$E1G<M9FK!4?)07-48+ YY_"K?/O>J>]K^=?5\@]]+?^1HO]/HCI0@Y_%
M8;(:-<0;0-+<R@]#U=--N(@':1#/CTKLS<)KH[&Y2,G-=;J-J"_U1-?U3086
M\("+//9H)WBT 376YA.\[UDK8J=*4*-WT [VLZB'AA O\' R_G5/9^3 :LS:
M%)7E0]:U"%D170.X49"4-5;9#X6MX.WE*<2#,=VN,DEY<'2E@UDJ& BF$=:,
M*8'X/M0-NGAZ?&\<+!'Q>:C&B'0Z'D5J6%,GE?B_AUENFJN=02K+OT9Q3,MV
MX'#LEKFXDL_ZV$T)\GQX[</K)5",E$^7PE_%6W!''29/&88C&C:/'BYNGYJM
M8^1:LYE6(Z4UGWV%F>W!-]<@F*%B]MK%:Q>O77Y,NS"4::FQ*[(R*NP]3ZXG
M13#\CG\S)]4M5V<L]+"PKX[D'I]A;OV:T396#4C?@5P0%=FF"-8?%^&%_@ZX
M07'TET [@J.#/B'U?6#>*=2M#=0<"&>1%_-](S1ZIL\CYP,QUZ:RNX:*.$MU
M"Z&$9I$&0W5]56='A0K'U$(X 3KAG0.$H:KDDB'\L#A3,T<%ZE.#P1HZK&S2
M\M\&UI9.1)!.YN)99EJ3OM1SAO/IN;JF.J0_@E-<%#A@=:=F.CLJ)/']0*8P
MD5F(R-80UCY8-[0RE6M$CPUSA4=4,N)FJ+*^P6]!2\U*-9L<4Y.P;S%QW_O:
M0A<Q=LAM($,0%&=2Z*90QA-GD;)=QB1Y-4DE%QMF+HW4DIX3V_64I$'?DNUN
M3:L62\&!'V>$=$[F<^>:=+9,]40PQ<DSG[^CA"\9LUPK->\P/:%1C9+@9-8M
M7]]QD--$ BKM-\ST+MZFD55# -RN-^MVG:FS;[E+BRK.R^H.R#2A,.I'6VI_
MK/WT3B>T"LVJS-"/(N*^Y,<EO]T=7_)KZ!AFY]FO9T>?/@>GIR^#CY_?GGP*
M3C^\^?CI_='GTP^K.7UYQ_.)VC-CSNWMX!UX83';8H72:(WQ]G(.*]_6FWU#
M-SK@!!\J5?BSI:$U>X09F,9RBQ,&V5+W8#W,81><>X23?%F4,WALH1./SHB/
M1.4)CC*B22HSON!(XRY1?&=A($(9YPHEC2"X-S'1:&)IQ+8Q'& U&..T@K"/
M],4KE+"PILET4V.QB RKO?<@GG+'"S]/(SRUW/LWG;X9_4(E?JX>O;3#397=
MMVIFH?!U=N8)+UO'(" 6_Q ?)[MI\<[MV?>=)25F*1;DHC0#%A"0$PX57[)5
M%+$>P:7K#F#K6$/G*E;%2=*EOSG ^Y7RT;]#:X0RW=X^VB8\@^"-.9>EUJJW
M517_EY9!/B+^ZX.(#DN4&XTQ.S>M;%-'(E<H@)V=5^[)T8_:KX ]S>TQU,O!
M36@RA*@' AWH&HFUYVY I7D%G'D>5"L8>"_))(OBH+UK;E#-&97(7&TNN;?/
M\]&T$7P=5NMR#NY$ X-?<=<;Y@OY*D=[:1@GD! 4+:\L:W:,N;)MSH\Z.I0%
MG[*DB,ZC8_+>U*U&5:ZFT&I4ABQ@69@7IMQM25?^P7<K7[ARE; A;#0V!R"3
MV%9M+QFGW[-&Z(A"Z&P'7Q*P&5%>$$3 .5W[C!?X020$]NM<P;'*)65RM9]X
M&M*)<(J3;5EPYF(#SGUW7=2,Y-?,E!&%'"1)P'[V.,QI!4=@KZ45=<-1-.=G
M1Z)?-N5R39D>#?N,Y$7/1%!D%( ->^T1=J<ZSSG5GS%/FX#_@B@XE8N*0UP%
M!;TY :UB$(YDU=K"/(:;34 =71( &G9*<ZLO@H:&K C=?9S))\_T)\TZ(KX1
M'"%.4\P'@,8A)5-.V&6RKHP>A:[@.C[OMG9V=O#_,M1)53 :6*,+0G/$_<>Y
M*NJ<L=>!<E: $3$_\$6&9\Z)D'8[.Y+1W&O&Q_C""7U. _L\FD_6U*UL QZV
MVSF@)>>C,&-)P:) BO6_% )9RNL$ZIO*^E%.^^;DR_/V=F<OH Z>$8-N5.\E
MM>^XR/#6)W$S^0+IO>X>OI/!['++@E<\[4>KIQ:A&9I*"V$<<0HH0?8E^NYN
MA)L;G4V2_E_@[0A7$NSM[./;P!<43/3@M?8&';8_ZA?T-;%70/&^[B&$#=#]
M%1K=-C<3>N+((]\QXFF*=TQ2@HQ]5^"-B/O-TZ]<%+-O),!<@Q[.4-G4Q8Y7
MC!$EZ5MN>=(4D*BX OHJZA?F5ME68/O,]'L1N17.!&DG;%\CI<+XK_2I;?0V
M"?$;9_]S>E?.4\O!(.T3TJ$=+*S@*>?BV?<<-!62RD^DQ.56#PM*:W%3JH18
M-H_X+A>SLB3"B6&JD609$01*I>.=832DZ^,2"B00DU=X57,?(R_"L79VNB(Z
M_,P>>G Y==-PGA)O#J.IV$QDO-WYF405IQ'&+8@"IY3E09G%>PFXXH*0Y3@&
M'L<R$VK?()<?&'U&IL,J#/1ACEEIG*/2:&FX$!<-$9Q T$_$K06-"R<Z8%JD
M4_2MWO /&<3EJQ#P<WO.Y_1T0B7+B[Y7F)@;(*VUX$(G;L51D+)>JJ0Z5]Q5
M5R@I;@KN&:'Q< >(,LWM-8YLH9A09O;8G L-983:K@2]:%#9N[LG-$*CZ *C
M11(X>.T5+&H:;'1V-OFE4IX/J4, ?]/EWVB );G]5T/*@!229XS?I9%MG._7
MRF$($AF2@&NO7(<2!!_ B% .'-2,Z,Z[#INS[%/22C)=N%8)@NVB_TL1<00*
MH0>J*>'65DK=$Z7$Q>!RW^I<R_[]/G+WF8$2?*V&(:5(ODS(%-*1KI]_^P%\
MMF4S'/?,% Y.X'N\=.,\'"K0"*\KZ%IKP@P%(^UZ^,A.M"=LL;<=?"0U>VJ=
M-D(B76:.6'@!2WNGM[?5#HZR#.W8F&M8JWNURN=4"K_Y0KP3V[[H7!,FZ3]]
M_<:B;ANJW _ A<*\%ETE)B,5,QX!15SM_7"KO3'<K FSJL"0U85J6'I"*:*)
M50$NG,ICF:+:@PD=RO),=+)UT^?6W6W8%U6POPV4&$6]J%@;DX!^J(Y?\P";
M9:T/*V<!BG&@OAE0=(O1QYF-?II-4NI.H5P-?+<WY0P.=K8^C)$QG0&^0T(Z
M)-J^0^(!E8PYY^_4,7ET\>S7\]/?/QQ]_O+IY'Q-=,MLGM9M\+_!"%)>YK"[
MJS.&G"C3R UX&PGAJ0[T'"35[OA>26F;2_D>K9X:A?&0<905I]8T+"5JJQ)S
M-?2\L"Q&*4$/-^92AL>:BGZ0&>A^&B.3_^-9YUY&G5E00$.>!B<?_CC]]/'#
M>V"_HW?!^<=W7SZ??OQPW@I./QQO5V5J?D;JGC9X2]W.=-G;>91!\^[CO&7O
M45[3[CS(:VYO'[_SA:_!$7IIKZG3+0#WRXV_35_6G=R,)_'3#OW/\25J!\]^
MR7\)WAZ] VT>G&\'YV^//IP$3R8X#\%8#\FLM2?Z-HP'*J'3!(.F_&'^R&$R
M:,$<^+L_U!\YU(UK8/4W_=&NQ#.]J:LU=:^/_CA]'?QQ].'\\\</2WSZ#= B
MK\/+:!#\$29YD2;^*'_<RLU!\_A#O2<K-P]Z%"8#?[H_<KKV<(\L_L$C^1 /
M"86PWGGDCL\C-S*#K&!Y)_]Y>_K;Z>< B?B?1\DA?U^=Q3GY^X%KG&%MR]3\
M^,,YA,5>6A3I^"%0=>;HJ(MD'TKT@FO3CS.9K9\?=%V+M?C"4WRZPWM-8SNF
M#U+.<BD/45*]3\F*6)GU9_>=9X=W5WY(Z^L'_OQNEN2P4/[L?LB$W/WX[MW1
M;_(IO:%)R[<J4]C;77-8B[W,5SWPA2\R"%(&6_TT3K.7/_7[2@V'SVZ,<AYP
M7]KAA0/\Z_^I;]UV>WM4C)_]VFUOM]G;?9+HKH:DWUNU7;3#8WPCWJ>E#?^"
M)']E]@V;V'@3=-$R#C7Q/V6B27Z'URX[O[MEEX$=T.6_2\N=^WX]3=7=Z9CF
MA3#KA8G*MSY^B]54/[&SL]-Y#/H]JA[U&_ ;:. &GDAW_^<[K<Z0_M<LJ],Q
M5N=1M-836)W.M59G/C7LK<XJJPR_ ;^!];(Z#8QU.CK6Z6RW?UI-L]-9%.S0
M;,\M I[V =U+<[QMC$"[N[=SHZ4X9& ';RG\!OP&GGH#2V8I&AB?=#K&4G3F
M+,4O3Z3:%T445K5?'U4\I&K?KCVDV_YGR1CVZ5V;]DY[^_3#^=+[+__Y[=.[
MX!0A;A!-Y[6,A'H%[S?@-^!]A$;Y"*ARSX_?KH;*_1Q^2Y-T/(5@L% ) 6J=
M]T=J''JY\1OP&_"JMW'>[O'1NY55O<=AW-=XJ.^BY&LOS)67(K\!OP&OB!OG
M [\^>=,0NMRS%GZ-R&F15\)^ WX#7@DWVQM^=_1;0^ARSTKX7=A3L=>_?@-^
M ^NE?Q=.U=[3BQ\9%O:GX#-B!/8KM=H(X7GQ=FNZ.8$O\<*;1R9E-DGE3B2I
MNDJ'Y\&M$0O=KDZY3<S](/V0@/VO\,X8!\\?/QE'82^*\2XF>EU8Z.O*$&HX
MD]L>H@*!#F4#%016%WJ5+Z) G&"^#VSAQ2*R]&[M<AN#AKCJD_?=VXC@/>@:
M>?*H&,>__O]02P,$%     @ TH-N6R_PYQJ7!   ,P4  !    !T;VUZ7S$P
M<6EM9S(N:G!G^W_C_P,& 2\W3S<&1D9&A@0@9/A_F\&9@94%")A!)!LK*QL'
M+P<'.SN' #</)Z^P@(BPD("0D(BXK*2(F(R8D)"4LI2,G+RBHJ*(I(JZBH*:
MK(*B L@01E8V-@YV#GX.#GX%42%1!9+!_P,,@AP,F@RFS(Q*#$R"C,R"C/^/
M,,@S,#"R,H(! Q0P,C&SL+*Q<W!R<0,5;!5@8&)D9F8"NA_H :!L+5">@460
M54C1T)%-.#"17:E0Q*AQXD(.9:>-!T6#+GY0,4XJ:N+D$A.7D)1255/7T-0R
M,34SM["T<G9Q=7/W\/0*#@D-"X^(C$I.24U+S\C,*BXI+2NOJ*QJ;FEM:^_H
M[)HT><K4:=-GS)RU:/&2I<N6KUBY:M/F+5NW;=^Q<]>APT>.'CM^XN2I2Y>O
M7+UV_<;-6P\?/7[R]-GS%R]???ST^<O7;]]__/P%\A<C S,C#&#UER#07TS
M:&%A!_F+D:D<I$"0A571D$W(,9 ]L5!8R:B10\1IXL*-!SF5C8,^B"857>02
M4S%YJ/H1Y#6PSXCS6!-9/H-[#.&O6PP\S(S R&,69+!G^/5KX>X]6R^_6;9O
MWZZN:]=8C+Q-S@DJ!UZ=,8]AY>IG^V\5'Q4K-Y<3_1&NMI%M*MOVDNE16^]\
M8O&N=LWA/7ZGS3Y$;@OCB^GSM\@?G"U3><]^PV3+XQ,FG?W/L&#ET23WWT$U
MDK,#NF[6N!8M<N=\OK=GM53U1F6%ZD<++W^5OYGNUF>Z<><'K3<!C3<3)YY@
MEIG$J7[GNN''Q<?CV;;J-_Y3O%!CO+ZB+/IGHO^FVQ&+V'14PPZ]C>-C7,"_
M=.$TZQE"&2F12A.=%R\\M6GB!,=W',O#63]4'XF*[[03^I&5S>MU[U]VK-6]
M>R^<'LZ2G&8@*5,:9'AO]QO!*P%,@:XBC*=KG*Z\WQ+?>D_KFLGNYMS:Y*5W
M8J+/B!CVN?9,S9%I;K*^_KQO]MK,.MNK-IZ/]#MO;;VW=&WM5-6M^=8GA3<5
M)!]:R/R4@2>!9W+SV;K91FLZ3BJM7LPCFCC!?<?Z2?LS[1MVM:TMK?TH?2AC
MLTF!TW0IU[4KC4Z%O#%RWU#\:8+'<5=UVQ4JGW;[\_WAW+'%.#9K>EE2I'H?
MJU3;]Q.3!2;9[&/TGS&Y1X[?ZUDI4(E^4W;HQ:^_3W\Q5)C;TREW4M1CPL.&
M4\8/I^?Y62C/Z;?<=ZG4UO!45E3LW<GEX@(FZ?\9Y)A6_EE^X2KCO?N^R0_G
MVCWSYWLE+O8]J&."9_8*@U1[L[>W^:2564H.)&E?_<^0HGWZ='^OU*3SE3:K
M2C([A3S.<'Y6?CXY]OJ;YQ^L'W[OV"<6]>/P42G/:^^WJD]E"><[+;IK\:::
M54M2YJ2KVV[L"=];8?Q0_/#Y]E];?FUOJ;'95?KFP^SR*>=5EBQ4F&"^\;A"
MR9<%?*^Z-%9J:%;):6HL8#LK$VXHL2[)\[%MD"L/_X/LOJMVPG\,KQ65ZC.\
M"#:4N+?-4[HNBW'=N2Z&TQ_^,[27^'.]"/LEWE[RX\M;H_N%7?=TIL:>B?BJ
M\LG3=*6K" ,H*O_?! !02P,$%     @ TH-N6[78R[ZY!P  F#(   X   !T
M;VUZ7V5X,S$Q+FAT;>U;87/:.A;]*UIVWIMD!A)(FMD=H,R0Q&F8:4(?86?Z
M]LN.L&705K;\)!E"?_V>*QM""'VENR2EVWRAM2WI7LGWG'NNY+0G+E&=]D3P
MJ--VTBG1<3KY_"]Q?]IH'.%A^[BXV_Y+K7:IPSP1J6.A$=R)B.56IF,67+[K
M#FZX=<+4:IWV<3'82$=S9MU<B;>58?!Q6.N^[[V[;;)_Y];)>-YB5_W;89,U
MZIEC3B;"LE3,F-$)3RN==K;H2JUJ=[U_!D73HEOMJGO3>_][<[UCB]UT!^]Z
ML%+/[EO,B7M7XTJ.TZ:1XXEK86#KC$['G>#C=>^\-V2GC:,&:Q^7=]O'68?M
MW':()1-FQ?BOZ<AFK1<W>Q$,AKVKWD5WV.O?LOX5^Q ,>OW+W@4;!!_Z@R'[
MQ^UE,&!WP85O<%H_0:.7=G)X';"[[N"\>QO<U?H?WP>_L^[%D+P]J==/7LJ;
MX@T]CY$% "J=7I5=<Q6)E-T=L;L)3T65A<+04^8FW#6?VX'5:3H^4F)A::1-
M!#3;C(= >+/>6NFN1.Q:L4Y=<Q-V6S,9N0D>U7^I8#)*93R*,,;;2KU"5LS"
MQ$00))N-L^S>/X@6#XH!WOS2FM)2A%R5=IW.6I75Y2 ?:E9^%MX1[U(MYHE4
M\^:Z4PDW8YDVZV2K<403!J]%C\Q^S=KNWSZ;\*E@1DREF(%,W41:]EO.#4)0
MS=E 9-HXIE-VI4T"F[7?F([9L'_38T$ZE8 !<3%7[$ZKW$F=VBKKI>%1:SD]
M_)@_7_-=3= 3? _T091^NDW +=?_A0)\RP7Y;M%PLB=1><XM8A%1E\S9IU3/
ME(C&H"4?G*8(R4C3H!HR (CC,F4\G;,\=28G_H P\!H!L<I9@BLC$:,Q#W'+
M,)U(4(8NVCUID(I06,O-G)HD_). W94Q+>Y%< 8F%;TWLD$-0FD@3- L17=X
M NIBLXD,)\SF]//0?R:,* >A"232*H@5$C$SZ2:8H,U$Z!VD<3.XIB-,$V\!
MBS*:KR[#*\Q^1)B=[CO,!(MEBD F3#P$;A480W,\-BO/91HC-7#B?OP_5'F$
M,0&.E2BM EB2TDF&V"98$ER5>L!=&?)VS32@'4D:N$HM<H4& )L&(KPYZ_T)
MN9VP6.F972#1B+&$0N,PQ.EFX3>\K*X RBZ<>>+M*Z9^1$R]V1-,#1\%X*]_
M_?M)XV\M6Z*FU-5$]3J.)2X/[*&/SA[C1G@<(*XEB6#$*Q.6!+&T$^I!S1)D
M.LIV=!U)&RIM<_2C'&BT*@"1&1V*"+<M.T#\1P* *H(\N ^A[\>"=9%>!KE"
MB\8IKS7.#D3A1>,L*JZ*2TF%2%H D<9GE(-6\%G@A7S9VE#\R% ,0S3/==2B
M!<G2YN/ PP^5!SM0WT58EQ7P?M<?NR@V-K#&2]4Y!_QP/W!Y*2QN(#R]&OLZ
M=JHD%$.>V^V[D&(;">"@M%1H0)WC;>=(.E-I?2I#*Y'Z<:B\?DB"JXG4",4]
ML$H1^ ".:IEDZ:%$0H0O5BL9^:TPFX^LC"0WDB8@"ZGJ4WM*(^66Y*.G(NNU
MID]\V@HXY)!HJ5/&Z<7DBE.^QK2\$P\R%#T*4;NJQ?&_D:"&2*GH+Z+OD4)?
M.E_^WZ3LEWX!WXT"#D9[R45;9]DGE+1]?MZ:F<!F4QD1X7"K4Y\-N059455+
M+,1-M& $<)3D(ZFDFY/RWF26^-&3A^>%@MH>-5VIBKW>N2\GE.4F R]97RF$
M(1*Q=\#7QV.1H@!0H"<\$1GQ'C5![5]0$/A19I <^XR!5Q+Z:4DHW!,2"J9<
MY5XU$$)%'*, EU-@RVXHI)=US!8JJ+C<7%M[SD%'*!A;5/ CG;LO>["-3N/+
MUH*V)^*O[YJQT6+CP].H*%8"_K1H\#V.VE?:^&EI(]H3VK@L$/D4V;3_7E;]
M_LE&^O@&Q4*UD0[#W!!^5PJ1#:,FVCK<IX-3C&6Q'.R/X@B+'7RA2PPB@I98
M:UTZ'H(>_-$!G2JD^=*OP\*K";?+JHU4B"<N$7EYYM>CE$YSIN0GH<ISA+7V
MU?]YB?89)Z]$M2_[HF='FV@L1"+->/JV<E+Y479*RVU2?UP=+4BH^I#*25FL
M$L%#5B<H?T.1]63+9>D:SR/IM+'+NL;?P)!)(IT3GC,V=!MI5$WT+)+PS0]P
M *J 1+$D@? O;?PL^$W\D4NX[KDL3T-_T''8?,7ZCX/UGT>4[,OF;E<I1EL;
M$DQ!!PAT%!%* 6B7]<ARDW4F^"<J,(JM!5]B^$T1_UG XF#QFPBCW \MCF\V
M9'X>H:,5R\3_17(IMU+0!2RA#;C-5SD6)8[-DX0;^5GXR92":^,1[&L%\TH6
M>TH6^[+[VD6A$AND[BJ@*[S: /C]ES@E2U0+G2_3J59306(_Y>/R@R)3"A21
M9$K/!9[.)KI0)?P1!X$S=E()'3T.I@V'H,_Z1>8S5I)8[2:[Q;R3$:;>>%-E
M)_63LVT.8M<.(W=TVGIV^NS'K>?]P64PJ)WWA\/^#18RNV?^]*Z<PNG9LQW$
M'MMC=MU]#\+TW_E>=V^#U5/P;7[_Y "Y<?(L2_=M]+G[U[7V+D;:.9WL9*)K
MGURO8>V_'/1B(D7,@GL1YK21ROI%Y;2;P0\^%"<KX*8G%@Z_F&!W& ?/QWR+
MO\M8L4I_.-+Y#U!+ P04    " #2@VY;T[M2B+P'  "@,@  #@   '1O;7I?
M97@S,3(N:'1M[5MM<QHW$/XK*IUT[!FP <?3#A!FL,'IS<0FP323]DM'W.DX
M-3KI*NG Y-=W5SI>C$E"6G!(XR\DG%;:E6Z?9W>UN)785+1;":-1NV6Y%:QM
M5?KA3W9W5JN?P&#KU#]M_5"I=%68ITQ:$FI&+8M(;K@<DU[W96=P38UENE)I
MMT[]8B,5S8BQ,\%>E(:]=\-*YU7P\J9!_LJ-Y?&L2:[Z-\,&J54S2RQ/F2&2
M38E6*96E=BN;3T6IRFWP1\^+^FF5J\YU\.KWQOK$)KGN#%X&H*6:W36)97>V
M0@4?RX;FX\0V86%CM9+C=N_=K\%%,"1GM9,Z:9T63UNG69OL3?=/<F2RYGYT
MA/!:F%[9X&5O, RN@LO.,.C?D/X5>=T;!/UN<$D&O=?]P9#\=M/M#<AM[]()
MG%7K(+3G@WA@Y/#7'KGM#"XZ-[W;2O_=J][OI',Y1&OKU6K]L:S9YWN9>WNI
M'91)ETYX1-Y2::R291(RC6/$)M0V]JU^=9.6C@2;:QHI'0%P349# '.CVER9
M+EALF[&2MK$)ILTICVP"0]5G)=B,$!F-(ECC1:E:0BUZKB)AB(!&[3R[<P/1
M?, O\/Q9<X)'$5)1Z+4J:Y96CP-MJ!C^@3E#G$F5F*9<S!KK1J54C[EL5%%7
M[00W#!06W5/[.6V[?_<DH1-&-)MP-@7>M DWY$U.-3B@F)$!RY2V1$ERI70*
M.BMOB(K)L'\=D)Z<<  !TBX5Y%:)W'(E39D$,CQI+K8''_K39[ZK#3HN#X \
MD+W/MG&XQ?D_DH-O>2!?S1OJ!^*5%]2 +X+7I3/R7JJI8-&8E;US:N^2D<)%
M%41\0!SEDE Y([FT.D?^@!S I0/@JY2D\$US\-&8AO!($Y5RH SEY1X(2!8R
M8ZB>H4A*WS/0N[*F@6<1& ,J!;XWU($"(=>0@X"8A.E@"5 7F28\3(C)\6,Y
M?\HT*Q;!#:3<",A+,%^9<IO !DW&0F<@KIN!:2J";<);@$,9S5:/X0EFWR+,
MS@X=9HS$7((C(R:6CEL&C($X#.N5<2YC" T4N1_^'XH\@C4!'"M>6@9@<0PG
M&?@VPA+A*L02=X7+FS75 .V(X\)EE,@%" #8%"#"J3/.GI":A,1"3<T<B9J-
M.>1G%!11?.CM!BO+*X R<V,>6/N$J6\14\\/!%/#>P[XTX^_U&L_-TV!FB*O
M1JI7<<SAZY$Y=MX9$*J9PP'X-<<D&/R5,(,),3<)SD"Q%"(=1CO\'G$3"F5R
MF(<Q4"OA 9%I%;(('AMR!/X?,0"4=_+>79A0.6:D ^%ED N0J)W12NW\B'DK
M:N>1_^:_<BQ#I <BKD\P!JW@T^,%;=E:47Q/40R*<)_KJ 4)3$L;]QT//K \
MV$'V[=W:?Y+#KC]V46QL8(W'JG..Z/%AX+++##P ]W39V.>Q4\9$,:2YV7X*
M9FPC!C@H-/D<4.7PMG,(.A-N7"@#*2;=.EA>+X/@:B#53% 'K"()7(*C7 19
M'.00$,$6HP2/W*V7R4>&1YQJCAO@/E5UH5WB2KG!]-%1D7&YI@M\RC PR$*@
MQ4D9Q1>3"XKQ&K;EC%BFH3##)[6KN3C\;\10$$(JS&?1UPBACQTO_S<A^[%?
MP%>C@*/107+1UE'V 25M'Y^W9B9@LPF/D'"H4=)%0VJ K+"J11:B.IHS G 4
MIR,NN)UAYKU)+?*C(P_'"Y[:[HFN5,4NW[DK-I3E.@->,JY2"$,(Q,X 5Q^/
MF80"0  ]P0C+D/=0!&I_3T' CSR#E..0,?!$0M\M"84'0D*]"16YRQH0H2R.
MH0#G$\"6V5!(+^J8+;(@_W5S;>TX!R9"!F-\!3]2N?VX!=OD:70AS?!Z(O[\
MK1D9S2\^'(TR?Q)@3Q,7/V"O?:*-[Y8VH@.AC:Y'Y$-DX_U[4?6[D8WT\049
M"]9&*@QSC?A=*40VK)HJ8^$YMDUA+0/'0?[V+2QR])$I,1 1Y!)KTH7A(="#
M:QU@5T'F"[N.O54)-8NJ#;,01UPL<NF9.X\B=9H1P=\S4?01UN3+__F(#ADG
M3T1U*/>BYR>;:"R$0)I1^:)4+WTK-Z7%-:EK5T=S$BHO0SEF%JM$L(SJ".4O
M*+(>7+DL3*-YQ*W29E'7N >P9)IR:YGCC W31@JJ)AR+.-CF%C@"JH 4Q6 *
M!/_BQ<^<W]C?.0?3'9?E,G2-CN/&$]:_':Q_/TG)H5SN=H0@>+7!@2FP@8"M
MB) S@'91CRPN6:>,OL<"PU\MN!+#78JXGP7,&XM?1!C%?:AOWVR(_#2"B88M
M O]'R:6X2H$IP!)* [>Y*L= B6/R-*6:?V!N,T7"M;$%^U3!/)'%@9+%H=R^
M=J!0B36$[C) E[EL \#O?HE3L$39Y_E<3I28,$SV)1T7/RC218+"TDRH&8/1
M::)\5D+O<1!PQDXJH9/[SK2A";K77V3NL9*$TVZ0&]AW.H*MUYZ72;U:/]^F
M$;O6C-Q1M_7\;._MUHO^H-L;5"[ZPV'_&@XRNR.N>U=LX>Q\;XW84W/J[>IV
MW@9=\K9S<SOLWZPVPC_]^8GN<:V^EW/[,N[<_;M:>Q$C9:U*=[+1>[^V)FLX
M^Y=K7B:<Q>1JP1]]7S7M9O&CU[ZK NL^T.!2DN5X9]F**02./QI]=^@G^Z/%
MAW\CX?Z I/T/4$L#!!0    ( -*#;ELWX#LI+@0  '<2   .    =&]M>E]E
M>#,R,2YH=&W56&%OVD@0_2MSG%HE$@8;PJG%%,D!)[&40 X[4GI?3HN]AKVS
M=]WU.H'^^L[:0 E)>KD3)#TILH3',V]F=MZ\57ISE2;]WIR2J-]33"6TKT3Z
M]4^Z:+>L!AI[S>IM[Q?#&(JP2"E7$$I*%(V@R!F?@3L\=R97)%=4&D:_UZR"
M346TA%PM$_JI%KBW@>%<>N>C+OQ5Y(K%2QO.QJ.@"Y:9*5 LI3EP>@]2I(37
M^KUL[:J_,GSO#[?ZM'(SSIPK[_)S=]?1ABMG<NXABIDM;%!TH0R2L!GO2C:;
M*QL#YTH*/NN[MQ?>J1= N]6PH-=<O>TULSX<#/L]G^:9?1B,$(^%RJT"!^XD
M\,Z\@1-XXQ%<WTS\&V<40# ^=+6/,K$^P$W#;PP:X+N#,ANKW3'KKYZ'XX,S
M'%\'[O!-V[%NPD?S-QB?07#A@N],3IV1ZQOCVTOW,SB#0%M:IMDZ='9K,AY@
M.$O.>Z.AJUE^TGD6V.,0"LYIJ)C@<,_4'-2<PI>"2&Q<L@1),R$5B!A/Z\H#
ME]\Q[(C>0R0!7R2%=LSKX/&P 4?:]_VO'UHMTQZ(-"-\6?ZR[&/ \&="IE6E
MEFG\#K&0VV! >81;S:>9HND4?[=Q3%MFJU,'DD/,$C1N$O1I6$BF&+: \ C<
M13@G?$8!45.6Y[H8_!N)NRJ4=5*%>I#AI"QMG2"64(<+DD24@X]LP7BT#H,Y
MHS&&1SC%[BB,XYB%&!#[H2.MBJP#OM,=U9FN3!'N:)A3245<AZR0>4%P=RL!
M6XRLVKYJ24E+]">1R/1ZW_9Y\*6>W16(3^04\\R-\2*A2W#"\J3T[-;13DI?
M_=V4YJ4E7<+?7-QC*V>T"Z\YU8I,$[I&F@H9H5SE&0E1PKJFO>6>T%C9L>"J
M^Y0XV?<L4G,TF>]JV/0DR4@488Q/-;.F4>0:8D[UWN]:./JE(5H;J@ G[^S:
M=NT:T,C95UJBEOA&3%*6++N[&:1$SACOFCKP]PI1J:.G<>[T:(0D6=6G1+87
M:*OQ).P_H>W]D ,<KXI)$!<);HP0.9%H8F[(*NF7@DFJET9)C]4THQ(=$5P,
M2,_.472\F>GOU-[0>C78UL?V2<61M%P6MB;_I@WXD#^>@5>:]LVA'&2;M]\D
MA9?@_7P'\&:L:/U$[&0<E38E)>50[!5A'.6%\9)M:^H2IM4^DS37+*UK,TD2
M0#<J&4H]&C*D;5XOO6+&"0_U>PP8L3*TUF'\JD@JDHN,RA(SWQ'+QL-YP8>6
MAO_7]>I)E"'VJOOXSO$2_=O1@#V)7*=]<)4['4^&[L0X'0=X/<1&9@O(1<*B
M50GMSL'TKYDWJ[PNG$M<C.6=[0+O\=7+ES]_(-Y6ZR#]^W=K<O]GMG,@4Z&4
M2/=2Z,[U>8=P_S'H,U?P_00_NI8,%UF&F^P1PO&S0KK'.7C=]5?^7ZC_#5!+
M P04    " #2@VY;RJ]%(SL$  #K$@  #@   '1O;7I?97@S,C(N:'1MU5AA
M;]I($/TK<YQ:)1(& ^'48HKD@$DM)9!B)TKORVFQU[!W]JZ[7B?07]]9&PBA
M29L[$=*3D"4\._-V9N?-6[D[5TG<Z\XI"7M=Q51,>THD7_^BBU:S64-CMUZ^
M[?YF& ,1Y GE"@))B:(AY!GC,W &9_;D@F2*2L/H=>MEL*D(EY"I94P_5'SG
MQC?L<_=LU(&_\TRQ:&G!<#SR.] P4P6*)30#3N] BH3P2J^;KEWU*L-S_W3*
MI:6;,;0OW///G5U'"R[LR9F+*&:ZL$#1A3)(S&:\(]ELKBP,G"DI^*SGW'QT
M3UT?6LU:$[KUU=MN/>W!WK$#+!F56^!O^31+K8/#]IV)[P[=ONV[XQ%<7DV\
M*WOD@S\^^$X:[^"JYM7Z-?"<?K&;1JMM5@^^#]L#>S"^])W!JY9C783WYA\P
M'H+_T0'/GIS:(\<SQC?GSF>P^[ZV-$WSQ;MUS<_*JDWWB%*, 7<T<#3Q3]I/
M KL< L$Y#103'.Z8FH.:4_B2$XF%BY<@:2JD A'A:5VXX/!;AA71HXG$X(DX
MUXY9%5P>U.!(^[[]_5VS:5I]D:2$+XM_#>L8,/Q0R*3,M&$:GR 2<AL,* ]Q
MT'DT5329XO\6MFG3;+:K0#*(6(S&S08]&N22*88E(#P$9Q',"9]10-2$99E.
M!G\C<5N&:IR4H1[L<%*DMMX@IE"% ;EE(5P3GBG!J]"?,QK!D''" X;YCJ.(
M!1@.JZ'CK%*L K[3]=3[7)E"'-HPIY**J II+K.<X#!7 K;X6!9]59""E.A/
M0I'J>;_M\V"E[MP5B$?DE'":&>-%3)=@!\4YZ<ZMHIT4OGK=E&:%)5G"/US<
M82%GM .'[&E%IC%=(TV%#%&_LI0$J&D=T]IRCVFDK$APU7E,K:P[%JHYFLPW
M%2QZ'*<D##'&AXI9T2AR#3&G6H0Z#6S\PA"N#66 DS=693MW#6AD["LM4 M\
M(R()BY>=W1TD1,X8[Y@Z\'V&*-WAXSBWNC4"$J_R4R+="W2C]BCLS]#V?L@^
MME?)(XCR&.=%@)R(-2TW5)7T2\XDU2.CH,>JFU&'C@B.!21G^R@\WO3T/;$W
MI%XU=N-]ZZ3D2%*,"DM3?U,&?,@?]\"!NGUS*"\RRUNOLH7GX/UZ!_!JK&C^
M0NQD''4V(07E4.H581SEA?&";6OJ$J:U/I4TTRRM:C.)8T W*K7PH2%%VF;5
MPBO:""(&#%D16JLPKLKCDN0BI;+ S';$LO:P7_"AI>'_=;EZ%&6 M>I\?^-X
MCO[M:,">1*[=>G&5.QU/!L[$.!W[>#G$0J8+R$3,PE4*K?:+Z5\]JY?[&MC7
M[@"N[9'GCT?EJ^<_?R#=C>:+5._?#<G]G]C.<4R%4B+92Z(/KLX[9/N/(9^X
M?N\G^-&E9!@VQ;C?7_#U--L/S#V*'00BYTI_QEG!'#^IU7MLML-.V.);5.\;
M4$L! A0#%     @ TH-N6^"9,:"Q$P  7=@  !$              ( !
M '1O;7HM,C R-3 Y,S N>'-D4$L! A0#%     @ TH-N6T%MKJIM$@  :-D
M !4              ( !X!,  '1O;7HM,C R-3 Y,S!?8V%L+GAM;%!+ 0(4
M Q0    ( -*#;EM_Q?&A\"@   &7 @ 5              "  8 F  !T;VUZ
M+3(P,C4P.3,P7V1E9BYX;6Q02P$"% ,4    " #2@VY;[8 /O>UF  #'5P4
M%0              @ &C3P  =&]M>BTR,#(U,#DS,%]L86(N>&UL4$L! A0#
M%     @ TH-N6Z YTDI150  H*$$ !4              ( !P[8  '1O;7HM
M,C R-3 Y,S!?<')E+GAM;%!+ 0(4 Q0    ( -*#;EM 1-%/R48! (R,$@ ,
M              "  4<, 0!T;VUZ7S$P<2YH=&U02P$"% ,4    " #2@VY;
M+_#G&I<$   S!0  $               @ $Z4P( =&]M>E\Q,'%I;6<R+FIP
M9U!+ 0(4 Q0    ( -*#;ENUV,N^N0<  )@R   .              "  ?]7
M @!T;VUZ7V5X,S$Q+FAT;5!+ 0(4 Q0    ( -*#;EO3NU*(O <  * R   .
M              "  >1? @!T;VUZ7V5X,S$R+FAT;5!+ 0(4 Q0    ( -*#
M;ELWX#LI+@0  '<2   .              "  <QG @!T;VUZ7V5X,S(Q+FAT
M;5!+ 0(4 Q0    ( -*#;EO*KT4C.P0  .L2   .              "  29L
F @!T;VUZ7V5X,S(R+FAT;5!+!08     "P + +,"  "-< (    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>tomz_10q_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2025"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2025"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2025"
  xmlns:tomz="http://tomz.com/20250930"
  xmlns:us-gaap="http://fasb.org/us-gaap/2025"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="tomz-20250930.xsd" xlink:type="simple"/>
    <context id="From2025-01-01to2025-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:ChiefFinancialOfficerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-10-01</startDate>
            <endDate>2025-10-31</endDate>
        </period>
    </context>
    <context id="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:NonEmployeeDirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-10-01</startDate>
            <endDate>2025-10-31</endDate>
        </period>
    </context>
    <context id="From2025-11-01to2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityPurchaseAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-11-01</startDate>
            <endDate>2025-11-05</endDate>
        </period>
    </context>
    <context id="AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityPurchaseAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-11-05</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">tomz:CustomerListsOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-12-31_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoCustomersMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_CommitteeChairpersonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">tomz:CommitteeChairpersonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-05-01to2025-05-30_tomz_MrVanstonMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">tomz:MrVanstonMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-05-01</startDate>
            <endDate>2025-05-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_ExecutiveAgreementsWithElissaJShaneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:ExecutiveAgreementsWithElissaJShaneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_us-gaap_SeriesBPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-05-31_tomz_MayTwentyTwentyFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-05-31</instant>
        </period>
    </context>
    <context id="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-05-01</startDate>
            <endDate>2024-05-31</endDate>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_MayTwentyTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_MayTwentyTwentyFourMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFourMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:MayTwentyTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsElevenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsSevenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsEightMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsThreeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">tomz:WarrantsOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeSevenPointZeroSixMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenPointZeroSixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeFourPointFourZeroMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourPointFourZeroMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeOnePointNineThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointNineThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeOnePointOneTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointOneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightZeroMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightZeroMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeSevenPointZeroSixMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeFourPointFourZeroMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointNineThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeOnePointOneTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointEightZeroMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:OptionIndexedToIssuersEquityEquityAxis">tomz:RangeZeroPointSevenOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-12-31_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_us-gaap_StockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-11-30_tomz_JuneTwoThousandTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-11-30</instant>
        </period>
    </context>
    <context id="AsOf2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-11-30</instant>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2023-10-01to2023-11-30_tomz_JuneTwoThousandTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-11-30</endDate>
        </period>
    </context>
    <context id="From2023-10-01to2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-01</startDate>
            <endDate>2023-11-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_JuneTwoThousandTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:OctoberandNovemberTwoThousandTwentyThreeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardDateAxis">tomz:JuneTwoThousandTwentyFiveMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2020-05-01to2020-05-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2020-05-01</startDate>
            <endDate>2020-05-31</endDate>
        </period>
    </context>
    <context id="AsOf2018-04-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2018-04-30</instant>
        </period>
    </context>
    <context id="From2018-04-01to2018-04-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2018-04-01</startDate>
            <endDate>2018-04-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_IntellectualPropertyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:IntellectualPropertyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_IntellectualPropertyMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:IntellectualPropertyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-07-07</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_EquityIncentivePlanOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_tomz_EquityIncentivePlanOneMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">tomz:EquityIncentivePlanOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_PreferredAStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:PreferredAStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_ConvertibleDebenturesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:ConvertibleDebenturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_tomz_PreferredAStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:PreferredAStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_tomz_ConvertibleDebenturesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:ConvertibleDebenturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:TwoVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_tomz_OneVendorsMember_us-gaap_AccountsPayableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:OneVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_OneVendorsMember_us-gaap_AccountsPayableMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">tomz:OneVendorsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ExtinguishmentOfDebtAxis">us-gaap:AccountsPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_GeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_GeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_GeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_GeographicRegionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:GeographicRegionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_UnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_UnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_UnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_InternationalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:InternationalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_UnitedStatesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">tomz:UnitedStatesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_ProductAndServiceRevenueMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_ProductAndServiceRevenueMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_ProductAndServiceRevenueMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_ProductAndServiceRevenueMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ProductAndServiceRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_ServiceAndTrainingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_ServiceAndTrainingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_ServiceAndTrainingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_ServiceAndTrainingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:ServiceAndTrainingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_tomz_SteraMistPRoductMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_SteraMistPRoductMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_tomz_SteraMistPRoductMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_SteraMistPRoductMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">tomz:SteraMistPRoductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_WarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">tomz:WarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_us-gaap_ConvertibleDebtMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_us-gaap_ConvertibleDebtMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShortTermDebtTypeAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_StockWarrantsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockWarrantsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_PreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:PreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_tomz_StockOptionsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">tomz:StockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2025-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-06-30_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="From2025-01-01to2025-09-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-06-30_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-09-30</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2023-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="AsOf2023-12-31_us-gaap_RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2023-12-31_us-gaap_CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2023-12-31_tomz_SeriesAPreferredStocksMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">tomz:SeriesAPreferredStocksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="From2024-01-01to2024-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2024-07-01to2024-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2024-07-01</startDate>
            <endDate>2024-09-30</endDate>
        </period>
    </context>
    <context id="From2025-07-01to2025-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <startDate>2025-07-01</startDate>
            <endDate>2025-09-30</endDate>
        </period>
    </context>
    <context id="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</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="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesBPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:SeriesAPreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2024-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="AsOf2025-09-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2025-09-30</instant>
        </period>
    </context>
    <context id="AsOf2025-11-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000314227</identifier>
        </entity>
        <period>
            <instant>2025-11-12</instant>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="USDPShares">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Pure">
        <measure>pure</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <dei:EntityCentralIndexKey contextRef="From2025-01-01to2025-09-30" id="ixv-13309">0000314227</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag contextRef="From2025-01-01to2025-09-30" id="ixv-13310">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate contextRef="From2025-01-01to2025-09-30" id="ixv-13311">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus contextRef="From2025-01-01to2025-09-30" id="ixv-13312">Q3</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus contextRef="From2025-01-01to2025-09-30" id="ixv-13313">2025</dei:DocumentFiscalYearFocus>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2024-12-31"
      decimals="INF"
      id="ixv-13314"
      unitRef="USDPShares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="ixv-13315"
      unitRef="Shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="ixv-13316"
      unitRef="Shares">20075205</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="ixv-13317"
      unitRef="Shares">20015205</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      id="ixv-13318"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="INF"
      id="ixv-13319"
      unitRef="USDPShares">1000</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="ixv-13320"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="ixv-13321"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="ixv-13322"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="ixv-13323"
      unitRef="Shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="ixv-13324"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="ixv-13325"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="ixv-13326"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="ixv-13327"
      unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="ixv-13328"
      unitRef="Shares">0</us-gaap:PreferredStockSharesOutstanding>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="From2025-01-01to2025-09-30" id="ixv-13329">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="From2025-01-01to2025-09-30" id="ixv-13330">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="From2025-01-01to2025-09-30" id="ixv-13331">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="From2025-01-01to2025-09-30" id="ixv-13332">false</ecd:NonRule10b51ArrTrmntdFlag>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="ixv-13333"
      unitRef="USD">9798</tomz:AmortizationOfTenantImprovementAllowance>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="ixv-13334"
      unitRef="USD">29395</tomz:AmortizationOfTenantImprovementAllowance>
    <tomz:CumulativeConvertiblePreferredStockStatedValue
      contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="ixv-13335"
      unitRef="USD">1000</tomz:CumulativeConvertiblePreferredStockStatedValue>
    <dei:DocumentType contextRef="From2025-01-01to2025-09-30" id="ixv-14681">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport contextRef="From2025-01-01to2025-09-30" id="ixv-14682">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate contextRef="From2025-01-01to2025-09-30" id="ixv-14683">2025-09-30</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="From2025-01-01to2025-09-30" id="ixv-14684">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="From2025-01-01to2025-09-30" id="ixv-14685">000-09908</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="From2025-01-01to2025-09-30" id="ixv-14686">TOMI ENVIRONMENTAL SOLUTIONS, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="From2025-01-01to2025-09-30" id="ixv-14687">FL</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="From2025-01-01to2025-09-30" id="ixv-14688">59-1947988</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="From2025-01-01to2025-09-30" id="ixv-14689">8430 Spires Way</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="From2025-01-01to2025-09-30" id="ixv-14690">Frederick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="From2025-01-01to2025-09-30" id="ixv-14691">MD</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="From2025-01-01to2025-09-30" id="ixv-14692">21701</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="From2025-01-01to2025-09-30" id="ixv-14693">800</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="From2025-01-01to2025-09-30" id="ixv-14694">525-1698</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="From2025-01-01to2025-09-30" id="ixv-14695">Common stock, par value $0.01 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="From2025-01-01to2025-09-30" id="ixv-14696">TOMZ</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="From2025-01-01to2025-09-30" id="ixv-14697">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus contextRef="From2025-01-01to2025-09-30" id="ixv-14698">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="From2025-01-01to2025-09-30" id="ixv-14699">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="From2025-01-01to2025-09-30" id="ixv-14700">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="From2025-01-01to2025-09-30" id="ixv-14701">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="From2025-01-01to2025-09-30" id="ixv-14702">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany contextRef="From2025-01-01to2025-09-30" id="ixv-14703">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="AsOf2025-11-12"
      decimals="INF"
      id="ixv-14704"
      unitRef="Shares">20225205</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1593"
      unitRef="USD">490022</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1594"
      unitRef="USD">664879</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1595"
      unitRef="USD">619965</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1596"
      unitRef="USD">1881138</us-gaap:AccountsReceivableNetCurrent>
    <tomz:InventoryCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1597"
      unitRef="USD">3364260</tomz:InventoryCurrent>
    <tomz:InventoryCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1598"
      unitRef="USD">3578202</tomz:InventoryCurrent>
    <us-gaap:DepositsAssetsCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1599"
      unitRef="USD">222065</us-gaap:DepositsAssetsCurrent>
    <us-gaap:DepositsAssetsCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1600"
      unitRef="USD">35895</us-gaap:DepositsAssetsCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1601"
      unitRef="USD">333997</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1602"
      unitRef="USD">332999</us-gaap:PrepaidExpenseCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1603"
      unitRef="USD">5030309</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1604"
      unitRef="USD">6493113</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1605"
      unitRef="USD">678528</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1606"
      unitRef="USD">875449</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1608"
      unitRef="USD">1359205</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1609"
      unitRef="USD">1250574</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1610"
      unitRef="USD">342229</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1611"
      unitRef="USD">399254</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OtherAssetsCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1612"
      unitRef="USD">634920</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1613"
      unitRef="USD">675348</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssets
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1614"
      unitRef="USD">2336354</us-gaap:OtherAssets>
    <us-gaap:OtherAssets
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1615"
      unitRef="USD">2325176</us-gaap:OtherAssets>
    <us-gaap:Assets
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1616"
      unitRef="USD">8045191</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1617"
      unitRef="USD">9693738</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1619"
      unitRef="USD">1258483</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1620"
      unitRef="USD">1924379</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1621"
      unitRef="USD">828723</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1622"
      unitRef="USD">455675</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:DeferredRevenueCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1623"
      unitRef="USD">309752</us-gaap:DeferredRevenueCurrent>
    <us-gaap:DeferredRevenueCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1624"
      unitRef="USD">211724</us-gaap:DeferredRevenueCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1625"
      unitRef="USD">139917</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1626"
      unitRef="USD">129132</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1627"
      unitRef="USD">2536875</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1628"
      unitRef="USD">2720910</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1630"
      unitRef="USD">407781</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1631"
      unitRef="USD">513395</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DebtInstrumentUnamortizedDiscount
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_603"
      unitRef="USD">240947</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:DebtInstrumentUnamortizedDiscount
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_575"
      unitRef="USD">239506</us-gaap:DebtInstrumentUnamortizedDiscount>
    <us-gaap:ConvertibleLongTermNotesPayable
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1632"
      unitRef="USD">2894053</us-gaap:ConvertibleLongTermNotesPayable>
    <us-gaap:ConvertibleLongTermNotesPayable
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1633"
      unitRef="USD">2360494</us-gaap:ConvertibleLongTermNotesPayable>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1634"
      unitRef="USD">3301834</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:LiabilitiesNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1635"
      unitRef="USD">2873889</us-gaap:LiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1636"
      unitRef="USD">5838709</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1637"
      unitRef="USD">5594799</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1638"
      unitRef="USD">0</us-gaap:CommitmentsAndContingencies>
    <us-gaap:CommitmentsAndContingencies
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1639"
      unitRef="USD">0</us-gaap:CommitmentsAndContingencies>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      id="fid_604"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_605"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_606"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1641"
      unitRef="USD">638</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2024-12-31_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1642"
      unitRef="USD">638</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="INF"
      id="fid_608"
      unitRef="USDPShares">1000</us-gaap:PreferredStockParOrStatedValuePerShare>
    <tomz:CumulativeDividendPercenatge
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="3"
      id="fid_612"
      unitRef="Pure">0.075</tomz:CumulativeDividendPercenatge>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_609"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_1749"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="AsOf2024-12-31_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_1750"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="AsOf2025-09-30"
      decimals="INF"
      id="fid_613"
      unitRef="USDPShares">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_614"
      unitRef="Shares">250000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_615"
      unitRef="Shares">20075205</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_581"
      unitRef="Shares">20015205</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1747"
      unitRef="USD">200752</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1748"
      unitRef="USD">200152</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1645"
      unitRef="USD">58251540</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1646"
      unitRef="USD">58201140</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1647"
      unitRef="USD">-56246448</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1648"
      unitRef="USD">-54302991</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1649"
      unitRef="USD">2206482</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1650"
      unitRef="USD">4098939</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1651"
      unitRef="USD">8045191</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1652"
      unitRef="USD">9693738</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1655"
      unitRef="USD">2011556</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1656"
      unitRef="USD">2542251</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1657"
      unitRef="USD">4619229</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1658"
      unitRef="USD">6669730</us-gaap:Revenues>
    <us-gaap:CostOfRevenue
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1659"
      unitRef="USD">779585</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1660"
      unitRef="USD">981124</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1661"
      unitRef="USD">1758389</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1662"
      unitRef="USD">2583419</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1663"
      unitRef="USD">1231971</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1664"
      unitRef="USD">1561127</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1665"
      unitRef="USD">2860840</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1666"
      unitRef="USD">4086311</us-gaap:GrossProfit>
    <us-gaap:ProfessionalFees
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1668"
      unitRef="USD">185476</us-gaap:ProfessionalFees>
    <us-gaap:ProfessionalFees
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1669"
      unitRef="USD">104941</us-gaap:ProfessionalFees>
    <us-gaap:ProfessionalFees
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1670"
      unitRef="USD">588666</us-gaap:ProfessionalFees>
    <us-gaap:ProfessionalFees
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1671"
      unitRef="USD">387267</us-gaap:ProfessionalFees>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1672"
      unitRef="USD">68588</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1673"
      unitRef="USD">69909</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1674"
      unitRef="USD">206368</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1675"
      unitRef="USD">224384</us-gaap:DepreciationAndAmortization>
    <us-gaap:SellingExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1676"
      unitRef="USD">143599</us-gaap:SellingExpense>
    <us-gaap:SellingExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1677"
      unitRef="USD">226593</us-gaap:SellingExpense>
    <us-gaap:SellingExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1678"
      unitRef="USD">630467</us-gaap:SellingExpense>
    <us-gaap:SellingExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1679"
      unitRef="USD">881927</us-gaap:SellingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1680"
      unitRef="USD">10694</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1681"
      unitRef="USD">56338</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1682"
      unitRef="USD">139380</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1683"
      unitRef="USD">185923</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:LegalFees
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1684"
      unitRef="USD">72623</us-gaap:LegalFees>
    <us-gaap:LegalFees
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1685"
      unitRef="USD">44338</us-gaap:LegalFees>
    <us-gaap:LegalFees
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1686"
      unitRef="USD">238487</us-gaap:LegalFees>
    <us-gaap:LegalFees
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1687"
      unitRef="USD">181068</us-gaap:LegalFees>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1688"
      unitRef="USD">1072406</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1689"
      unitRef="USD">909906</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1690"
      unitRef="USD">3266041</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1691"
      unitRef="USD">3181304</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1692"
      unitRef="USD">1553386</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1693"
      unitRef="USD">1412025</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1694"
      unitRef="USD">5069409</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1695"
      unitRef="USD">5041873</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1696"
      unitRef="USD">-321415</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1697"
      unitRef="USD">149102</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1698"
      unitRef="USD">-2208569</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1699"
      unitRef="USD">-955562</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherIncome
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1701"
      unitRef="USD">0</us-gaap:OtherIncome>
    <us-gaap:OtherIncome
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1702"
      unitRef="USD">0</us-gaap:OtherIncome>
    <us-gaap:OtherIncome
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1703"
      unitRef="USD">534912</us-gaap:OtherIncome>
    <us-gaap:OtherIncome
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1704"
      unitRef="USD">0</us-gaap:OtherIncome>
    <us-gaap:InterestIncomeOperating
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1705"
      unitRef="USD">1406</us-gaap:InterestIncomeOperating>
    <us-gaap:InterestIncomeOperating
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1706"
      unitRef="USD">3480</us-gaap:InterestIncomeOperating>
    <us-gaap:InterestIncomeOperating
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1707"
      unitRef="USD">85717</us-gaap:InterestIncomeOperating>
    <us-gaap:InterestIncomeOperating
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1708"
      unitRef="USD">15231</us-gaap:InterestIncomeOperating>
    <us-gaap:InterestExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1709"
      unitRef="USD">130339</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1710"
      unitRef="USD">93620</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1711"
      unitRef="USD">355517</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1712"
      unitRef="USD">280699</us-gaap:InterestExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1713"
      unitRef="USD">-128933</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1714"
      unitRef="USD">-90140</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1715"
      unitRef="USD">265112</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1716"
      unitRef="USD">-265468</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1717"
      unitRef="USD">-450348</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1718"
      unitRef="USD">58962</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1719"
      unitRef="USD">-1943457</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1720"
      unitRef="USD">-1221030</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1721"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1722"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1723"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1724"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1725"
      unitRef="USD">-450348</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1726"
      unitRef="USD">58962</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1727"
      unitRef="USD">-1943457</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1728"
      unitRef="USD">-1221030</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2025-07-01to2025-09-30"
      decimals="INF"
      id="fid_1730"
      unitRef="USDPShares">-0.02</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2024-07-01to2024-09-30"
      decimals="INF"
      id="fid_1731"
      unitRef="USDPShares">0.00</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2025-01-01to2025-09-30"
      decimals="INF"
      id="fid_1732"
      unitRef="USDPShares">-0.10</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="From2024-01-01to2024-09-30"
      decimals="INF"
      id="fid_1733"
      unitRef="USDPShares">-0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2025-07-01to2025-09-30"
      decimals="INF"
      id="fid_1734"
      unitRef="USDPShares">-0.02</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2024-07-01to2024-09-30"
      decimals="INF"
      id="fid_1735"
      unitRef="USDPShares">0.00</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2025-01-01to2025-09-30"
      decimals="INF"
      id="fid_1736"
      unitRef="USDPShares">-0.10</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="From2024-01-01to2024-09-30"
      decimals="INF"
      id="fid_1737"
      unitRef="USDPShares">-0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1738"
      unitRef="Shares">20075205</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1739"
      unitRef="Shares">20015205</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1740"
      unitRef="Shares">20046195</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1741"
      unitRef="Shares">19984179</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1742"
      unitRef="Shares">20075205</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1743"
      unitRef="Shares">20096751</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1744"
      unitRef="Shares">20046195</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1745"
      unitRef="Shares">19984179</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1751"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1753"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1752"
      unitRef="Shares">20015205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1754"
      unitRef="USD">200152</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1755"
      unitRef="USD">58201140</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1756"
      unitRef="USD">-54302991</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1757"
      unitRef="USD">4098939</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="From2025-01-01to2025-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1759"
      unitRef="Shares">60000</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2025-01-01to2025-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1761"
      unitRef="USD">600</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2025-01-01to2025-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1762"
      unitRef="USD">50400</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1764"
      unitRef="USD">51000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1768"
      unitRef="USD">-1943457</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1769"
      unitRef="USD">-1943457</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1770"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1772"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1771"
      unitRef="Shares">20075205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1773"
      unitRef="USD">200752</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1774"
      unitRef="USD">58251540</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1775"
      unitRef="USD">-56246448</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1776"
      unitRef="USD">2206482</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2023-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1777"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1779"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2023-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1778"
      unitRef="Shares">19923955</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1780"
      unitRef="USD">199240</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1781"
      unitRef="USD">57985245</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1782"
      unitRef="USD">-49826229</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2023-12-31"
      decimals="0"
      id="fid_1783"
      unitRef="USD">8358894</us-gaap:StockholdersEquity>
    <tomz:OptionsExercisedShares
      contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1785"
      unitRef="Shares">31250</tomz:OptionsExercisedShares>
    <tomz:OptionsExercisedAmount
      contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1787"
      unitRef="USD">312</tomz:OptionsExercisedAmount>
    <tomz:OptionsExercisedAmount
      contextRef="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1788"
      unitRef="USD">27188</tomz:OptionsExercisedAmount>
    <tomz:OptionsExercisedAmount
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1790"
      unitRef="USD">27500</tomz:OptionsExercisedAmount>
    <us-gaap:StockIssuedDuringPeriodSharesIssuedForServices
      contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1792"
      unitRef="Shares">60000</us-gaap:StockIssuedDuringPeriodSharesIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2024-01-01to2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1794"
      unitRef="USD">600</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1795"
      unitRef="USD">44400</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:StockIssuedDuringPeriodValueIssuedForServices
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1797"
      unitRef="USD">45000</us-gaap:StockIssuedDuringPeriodValueIssuedForServices>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1800"
      unitRef="USD">144307</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1802"
      unitRef="USD">144307</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1806"
      unitRef="USD">-1221030</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1807"
      unitRef="USD">-1221030</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1808"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1810"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1809"
      unitRef="Shares">20015205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1811"
      unitRef="USD">200152</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1812"
      unitRef="USD">58201140</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1813"
      unitRef="USD">-51047259</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30"
      decimals="0"
      id="fid_1814"
      unitRef="USD">7354671</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-06-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1815"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1817"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-06-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1816"
      unitRef="Shares">20075205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1818"
      unitRef="USD">200752</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1819"
      unitRef="USD">58251540</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1820"
      unitRef="USD">-55796100</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-06-30"
      decimals="0"
      id="fid_1821"
      unitRef="USD">2656830</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-07-01to2025-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1825"
      unitRef="USD">-450348</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1826"
      unitRef="USD">-450348</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1827"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1829"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2025-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1828"
      unitRef="Shares">20075205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1830"
      unitRef="USD">200752</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1831"
      unitRef="USD">58251540</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1832"
      unitRef="USD">-56246448</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1833"
      unitRef="USD">2206482</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-06-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1834"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1836"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-06-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1835"
      unitRef="Shares">20015205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1837"
      unitRef="USD">200152</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1838"
      unitRef="USD">58201140</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1839"
      unitRef="USD">-51106221</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-06-30"
      decimals="0"
      id="fid_1840"
      unitRef="USD">7295709</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-07-01to2024-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1844"
      unitRef="USD">58962</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1845"
      unitRef="USD">58962</us-gaap:NetIncomeLoss>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1846"
      unitRef="Shares">63750</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_tomz_SeriesAPreferredStocksMember"
      decimals="0"
      id="fid_1848"
      unitRef="USD">638</us-gaap:StockholdersEquity>
    <us-gaap:SharesIssued
      contextRef="AsOf2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1847"
      unitRef="Shares">20015205</us-gaap:SharesIssued>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_us-gaap_CommonStockMember"
      decimals="0"
      id="fid_1849"
      unitRef="USD">200152</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_us-gaap_AdditionalPaidInCapitalMember"
      decimals="0"
      id="fid_1850"
      unitRef="USD">58201140</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30_us-gaap_RetainedEarningsMember"
      decimals="0"
      id="fid_1851"
      unitRef="USD">-51047259</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="AsOf2024-09-30"
      decimals="0"
      id="fid_1852"
      unitRef="USD">7354671</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1854"
      unitRef="USD">-1943457</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1855"
      unitRef="USD">-1221030</us-gaap:ProfitLoss>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1857"
      unitRef="USD">206368</us-gaap:DepreciationAndAmortization>
    <us-gaap:DepreciationAndAmortization
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1858"
      unitRef="USD">224384</us-gaap:DepreciationAndAmortization>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1859"
      unitRef="USD">117986</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1860"
      unitRef="USD">117986</us-gaap:OperatingLeaseRightOfUseAssetAmortizationExpense>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1861"
      unitRef="USD">52617</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1862"
      unitRef="USD">46860</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:ShareBasedCompensation
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1863"
      unitRef="USD">0</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1864"
      unitRef="USD">144307</us-gaap:ShareBasedCompensation>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1865"
      unitRef="USD">51000</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1866"
      unitRef="USD">45000</us-gaap:IssuanceOfStockAndWarrantsForServicesOrClaims>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1867"
      unitRef="USD">197639</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1868"
      unitRef="USD">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:InventoryLIFOReserveEffectOnIncomeNet
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1869"
      unitRef="USD">-232275</us-gaap:InventoryLIFOReserveEffectOnIncomeNet>
    <us-gaap:InventoryLIFOReserveEffectOnIncomeNet
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1870"
      unitRef="USD">0</us-gaap:InventoryLIFOReserveEffectOnIncomeNet>
    <tomz:AllowanceOnSalesReturns
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1871"
      unitRef="USD">-61828</tomz:AllowanceOnSalesReturns>
    <tomz:AllowanceOnSalesReturns
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1872"
      unitRef="USD">0</tomz:AllowanceOnSalesReturns>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1875"
      unitRef="USD">-1003569</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1876"
      unitRef="USD">716462</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1877"
      unitRef="USD">-431820</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1878"
      unitRef="USD">-46988</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1879"
      unitRef="USD">-6578</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInPrepaidExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1880"
      unitRef="USD">-25455</us-gaap:IncreaseDecreaseInPrepaidExpense>
    <us-gaap:IncreaseDecreaseInDepositOtherAssets
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1881"
      unitRef="USD">186170</us-gaap:IncreaseDecreaseInDepositOtherAssets>
    <us-gaap:IncreaseDecreaseInDepositOtherAssets
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1882"
      unitRef="USD">68153</us-gaap:IncreaseDecreaseInDepositOtherAssets>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1883"
      unitRef="USD">-40428</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1884"
      unitRef="USD">121888</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1886"
      unitRef="USD">-510970</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1887"
      unitRef="USD">285194</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1888"
      unitRef="USD">319934</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1889"
      unitRef="USD">-137982</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1890"
      unitRef="USD">56376</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInDeferredRevenue
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1891"
      unitRef="USD">0</us-gaap:IncreaseDecreaseInDeferredRevenue>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1892"
      unitRef="USD">-126395</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1893"
      unitRef="USD">-123521</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1894"
      unitRef="USD">-576780</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1895"
      unitRef="USD">-1452862</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1897"
      unitRef="USD">130412</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1898"
      unitRef="USD">0</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1899"
      unitRef="USD">2665</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1900"
      unitRef="USD">104660</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1901"
      unitRef="USD">-133077</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1902"
      unitRef="USD">-104660</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromConvertibleDebt
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1904"
      unitRef="USD">535000</us-gaap:ProceedsFromConvertibleDebt>
    <us-gaap:ProceedsFromConvertibleDebt
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1905"
      unitRef="USD">0</us-gaap:ProceedsFromConvertibleDebt>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1906"
      unitRef="USD">0</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1907"
      unitRef="USD">27500</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1908"
      unitRef="USD">535000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1909"
      unitRef="USD">27500</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1910"
      unitRef="USD">-174857</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1911"
      unitRef="USD">-1530022</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1912"
      unitRef="USD">664879</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2023-12-31"
      decimals="0"
      id="fid_1913"
      unitRef="USD">2339059</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1914"
      unitRef="USD">490022</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="AsOf2024-09-30"
      decimals="0"
      id="fid_1915"
      unitRef="USD">809037</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1917"
      unitRef="USD">309314</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1918"
      unitRef="USD">222000</us-gaap:InterestPaidNet>
    <tomz:NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1920"
      unitRef="USD">14397</tomz:NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts>
    <tomz:NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1921"
      unitRef="USD">0</tomz:NonCashServiceEquipmentsReclassifiedFromInventoryToFixedAssetsAmounts>
    <us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_771">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 1. DESCRIPTION OF BUSINESS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;TOMI Environmental Solutions, Inc., a Florida corporation (&#x201c;TOMI&#x201d;, the &#x201c;Company&#x201d;, &#x201c;we&#x201d;, &#x201c;our&#x201d; and &#x201c;us&#x201d;) is a global provider of disinfection and decontamination essentials through our premier Binary Ionization Technology&#xae; (BIT&#x2122;) platform, under which we manufacture, license, service and sell our SteraMist&#xae; brand of products, including SteraMist&#xae; BIT&#x2122;, a hydrogen peroxide-based mist and fog. Our solution and process are environmentally friendly as the only product from our decontamination process is oxygen and water in the form of humidity. Our solution is organically listed in the United States and Canada as a sustainably green product with no or very little carbon footprint. Our business is organized into four divisions: Life Sciences, Hospital Healthcare, Food Safety and Commercial.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Invented under a defense grant in association with the Defense Advanced Research Projects Agency (&#x201c;DARPA&#x201d;) of the U.S. Department of Defense, BIT&#x2122; is registered with the U.S. Environmental Protection Agency (the &#x201c;EPA&#x201d;) and uses a low percentage hydrogen peroxide as its only active ingredient to produce a fog composed mostly of a hydroxyl radical (&lt;strong&gt;&lt;sup style="vertical-align:super"&gt;.&lt;/sup&gt;&lt;/strong&gt;OH ion), known as ionized Hydrogen Peroxide (iHP&#x2122;). Represented by the SteraMist&#xae; brand of products, iHP&#x2122; produces a germ-killing aerosol that works like a visual non-caustic gas.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our products are designed to service a broad spectrum of commercial structures, including, but not limited to, hospitals and medical facilities, bio-safety labs, pharmaceutical facilities, meat and produce processing facilities, food security including storage and transportation, universities and research facilities, vivarium labs, other service industries including cruise ships, office buildings, hotel and motel rooms, schools, restaurants, military barracks, police and fire departments, prisons, and athletic facilities. Our products are also used in single-family homes and multi-unit residences. Additionally, our products have been listed on EPA&#x2019;s List N as products that help combat COVID-19 and are actively being used for this purpose.&lt;/p&gt;</us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_776">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 2. SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Basis of Presentation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The interim unaudited condensed consolidated financial statements included herein, presented in accordance with generally accepted accounting principles in the United States of America (GAAP), and stated in U.S. dollars, have been prepared by us, without an audit, pursuant to the rules and regulations of the U.S. Securities and Exchange Commission (the &#x201c;SEC&#x201d;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations, although we believe that the disclosures are adequate to make the information presented not misleading.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;These financial statements reflect all adjustments, consisting of normal recurring adjustments, which, in the opinion of management, are necessary for fair presentation of the information contained therein. These unaudited condensed consolidated financial statements should be read in conjunction with our audited financial statements for the year ended December 31, 2024, and notes thereto which are included in the annual report on Form 10-K previously filed with the SEC on April 14, 2025, as amended (the &#x201c;Annual Report&#x201d;). We follow the same accounting policies in the preparation of interim reports. The results of operations for the interim periods covered by this Form 10-Q may not necessarily be indicative of results of operations for the full fiscal year or any other interim period.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Principles of Consolidation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The accompanying condensed consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Reclassification of Accounts&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Use of Estimates&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The preparation of the condensed consolidated financial statements in conformity with GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to allowance for credit losses, inventory, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Fair Value Measurements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of input, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:8%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 1:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Quoted prices in active markets for identical assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 2:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 3:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Cash and Cash Equivalents&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be more than insured limits. At September 30, 2025, and December 31, 2024, there were no cash equivalents.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Accounts Receivable&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Accounts receivables are stated at the amount management expects to collect from outstanding balances. The Company generally does not require collateral to support customer receivables. Management assesses the collectability of outstanding customer invoices and maintains an allowance resulting from the expected non-collection of customer receivables. In estimating this reserve, management considers factors such as industry sector, historical collection experience, customer creditworthiness, specific customer risk, and current and expected general economic conditions. For those customers to whom we extend credit, in accordance with the Current Expected Credit Loss (CECL) model, we make a risk-based evaluation at the point of sale which is further reviewed on both an individual and collective (pool) basis during each reporting period based on ASC 326. We are required to estimate and report expected credit losses over the entire life of a financial asset, considering historical data, current conditions, and future forecasts, even if the risk of loss is remote. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We have implemented a policy of reserving credit losses based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be at risk. Our allowance for credit losses was as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;2,229,977&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;1,494,347&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Credit loss expense&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;197,639&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,050,543&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Adjustment for uncollectible accounts&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(1,236,069&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(314,913&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;1,191,547&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,229,977&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Inventories&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials. We expense certification costs to cost of goods sold as incurred.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence, and future customer demand. We record an allowance for estimated losses when the facts and circumstances indicate that inventories may not be usable or realized when comparing current inventory levels to anticipated demand for our product.&#160; Our reserve for obsolete inventory was $868,000 and $1,100,000 as of September 30, 2025, and December 31, 2024, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Property and Equipment&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation commences for equipment, furniture and fixtures and vehicles, once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the remaining lease term at the time the asset was placed into service or the service lives of the improvements, whichever is shorter.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Leases&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depend upon classification as a finance or operating lease.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We have also elected the practical expedient not to separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense in the period in which they are incurred.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Accounts Payable&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September 30, 2025, one vendor accounted for approximately 46% of accounts payable. As of December 31, 2024, one vendor accounted for approximately 60% of accounts payable.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the three and nine months ended September 30, 2025, two vendors accounted for 59% and 50% of cost of sales, respectively. For the three and nine months ended September 30, 2024, two vendors accounted for 53% and 65% of cost of sales, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Accrued Warranties&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results.&#160; As of September 30, 2025, and December 31, 2024, our warranty reserve was $22,648 and $30,000, respectively. (See Note 14).&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Income Taxes&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes.&#160; Net deferred tax assets have been fully reserved as of September 30, 2025, and December 31, 2024.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Net Income (Loss) Per Share&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures. The computation of diluted EPS is similar to the computation of basic EPS except that the numerator may have to adjust for any dividends and income or loss associated with potentially dilutive securities that are assumed to have resulted in the issuance of shares of common stock and the denominator may have to adjust to include the number of additional shares of common stock that would have been outstanding if the dilutive potential shares of common stock had been issued during the period to reflect the potential dilution that could occur from shares of common stock issuable through a contingent shares issuance arrangement, stock options, warrants, or convertible preferred stock. For purposes of determining diluted earnings per common share, the treasury stock method is used for stock options, and warrants, and the if-converted method is used for convertible preferred stock and convertible debt as prescribed in FASB ASC Topic 260. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Potentially dilutive securities as of September 30, 2025, consisted of 2,508,000 shares of common stock from convertible debentures, 2,604,388 shares of common stock issuable upon exercise of outstanding warrants, 768,792 shares of common stock issuable upon outstanding stock options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Potentially dilutive securities as of September 30, 2024, consisted of 2,080,000 shares of common stock from convertible debentures, 2,765,846 shares of common stock issuable upon exercise of outstanding warrants, 805,042 shares of common stock issuable upon vesting of stock options and exercise and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred Stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Options, warrants, preferred stock and shares associated with the conversion of debt to purchase approximately 5.9 million and 5.7 million shares of common stock were outstanding on September 30, 2025, and 2024, respectively but were excluded from the computation of diluted net loss per share at September 30, 2025 and 2024 due to anti-dilutive effect on net loss per share.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Adjustments for convertible debt - as converted:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Interest on convertible debt net of effective tax rate (28%)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average number of shares of common stock outstanding:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,015,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,096,751&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Basic weighted-average shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,015,205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Effect of dilutive securities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,908&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Convertible Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;11,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Preferred Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;63,750&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted Weighted Average Shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,096,751&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;The following table sets forth the number of potential shares of common stock that have been excluded from diluted net income (loss) per share because their effect was anti-dilutive:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;573,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,734,596&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,508,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,080,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,881,180&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,387,596&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Note: Warrants, options, convertible debt and preferred stock for the nine months ending September 30, 2025 and 2024, are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Revenue Recognition&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We recognize revenue in accordance with the Financial Accounting Standards Board (FASB) Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic 606, Revenue from Contracts with Customers. We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above for each distinct performance obligation identified in step (ii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to resale of our products by dealers and distributors. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Disaggregation of Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The following table presents our approximate revenue disaggregated by revenue source.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Product and Service Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,603,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,766,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;409,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;776,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,012,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,542,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Revenue by Geographic Region&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,280,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,886,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;732,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;656,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,012,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,542,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Product and Service Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,255,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,247,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,364,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,423,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,619,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,670,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Revenue by Geographic Region&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,294,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,169,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,325,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,501,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,619,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,670,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Product revenue includes sales from our standard and customized equipment, solutions and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized when the services agreed upon are rendered to our customers at an amount that reflects the consideration we expect to receive in exchange for those services.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Estimated allowances for sales returns are recorded as sales are recognized. We use a specific identification method based on subsequent product return activity and historical average calculations to estimate the allowance for sales returns. Our allowance for sales returns as of September 30, 2025, was $90,540 and $227,000 at December 31, 2024, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Costs to Obtain a Contract with a Customer&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Contract Balances&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September 30, 2025, and December 31, 2024, we had contract balances and unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed in the amounts of $309,752 and $211,724, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Arrangements with Multiple Performance Obligations&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Significant Judgments&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services. We also record an estimated allowance for anticipated product returns.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Equity Compensation Expense&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We account for equity compensation expense in accordance with FASB ASC 718, &#x201c;Compensation-Stock Compensation.&#x201d; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#x2019;s fair value.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#x2013;free interest rates are calculated based on continuously compounded risk&#x2013;free rates for the appropriate term. The expected term of the Company&#x2019;s warrants has been determined utilizing the &#x201c;simplified&#x201d; method for awards that qualify as &#x201c;plain-vanilla&#x201d; warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its common stock, par value $0.01 (the &#x201c;Common Stock&#x201d;) and does not intend to pay dividends on its Common Stock in the foreseeable future.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;On July 7, 2017, our shareholders approved the Company&#x2019;s Amended and Restated 2016 Equity Incentive Plan (the amended &#x201c;2016 Plan&#x201d;). The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of Common Stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of Common Stock for numerous reasons, including, but not limited to, shares of Common Stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. During the nine months ended September&lt;strong&gt; &lt;/strong&gt;30, 2025, and 2024, we issued 60,000 and 60,000 shares of Common Stock, respectively, to members of our Board out of the 2016 Plan.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Concentrations of Credit Risk&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Long-Lived Assets Including Acquired Intangible Assets&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the three and nine months ended September 30, 2025, and 2024.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Advertising and Promotional Expenses&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Advertising and promotional costs are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, advertising and promotional expenses included in selling expenses were approximately $24,000 and $88,000, respectively. For the same periods in 2024, these expenses were approximately $35,000 and $192,000, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Research and Development Expenses&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Research and development expenses are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, these expenses were approximately $11,000 and $139,000, respectively. For the same periods in 2024, research and development expenses were approximately $56,000 and $186,000, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Business Segments&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product in which 1) The business activities are homogenous in nature, 2) The entire operation faces similar market conditions and risks, 3) There is a high degree of integration in its operations, 4) Internal evaluations of financial results are conducted on a consolidated basis. A breakdown of revenue is presented in &#x201c;Revenue Recognition&#x201d; in Note 2 above. See Note 17, Segment Reporting for more details. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;Going Concern&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the nine months ended September 30, 2025, and 2024, our net loss was approximately $1,943,000 and $1,221,000, respectively, and the cash used in operations was approximately $577,000 and $1,453,000, respectively. As of September 30, 2025, we had approximately $490,000 cash and cash equivalents and an accumulated deficit of $56.2 million. These factors raise substantial doubt about the Company&#x2019;s ability to continue as a going concern within one year after the date the financial statements are issued. The Company&#x2019;s consolidated financial statements have been prepared on the basis of continuity of operations, realization of assets and satisfaction of liabilities in the ordinary course of business; no adjustments have been made relating to the recoverability and classification of recorded asset amounts and classification of liabilities that might be necessary should the Company not continue as a going concern.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The Company intends to fund ongoing activities by utilizing its current cash on hand, the cash generated from operations, and by raising additional capital through equity or debt financings. There can be no assurance that the Company will be successful in raising that additional capital or that such capital, if available, will be on terms that are acceptable to us, as our ability to raise capital may be affected by various factors, including general market conditions, volatility of our stock price, investor interests and expectations, and our financial performance. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Recent Accounting Pronouncements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Recently issued accounting pronouncements not yet adopted&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In December 2023, FASB issued ASU No. 2023-09, Improvements to Income Tax Disclosures (Topic 740). The ASU requires disaggregated information about a reporting entity&#x2019;s effective tax rate reconciliation as well as additional information on income taxes paid. The ASU is effective on a prospective basis for annual periods beginning after December 15, 2024. Early adoption is also permitted for annual financial statements that have not yet been issued or made available for issuance. The Company will adopt ASU 2023-09 in its fourth quarter of 2025 using a prospective transition method.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In November 2024, FASB issued ASU No. 2024-03, Disaggregation of Income Statement Expenses (Subtopic 220-40). In January 2025, ASU No. 2025-01 was issued to clarify the effective date for all public business entities. The ASU requires the disaggregated disclosure of specific expense categories, including purchases of inventory, employee compensation, depreciation, and amortization, within relevant income statement captions. This ASU also requires disclosure of the total amount of selling expenses along with the definition of selling expenses. The ASU is effective for annual periods beginning after December 15, 2026, and interim periods within fiscal years beginning after December 15, 2027. Adoption of this ASU can either be applied prospectively to consolidated financial statements issued for reporting periods after the effective date of this ASU or retrospectively to any or all prior periods presented in the consolidated financial statements. Early adoption is also permitted. This ASU will likely result in the required additional disclosures being included in our consolidated financial statements once adopted. We are currently evaluating the provisions of this ASU.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In July 2025, FASB issued ASU No. 2025-05, Financial Instruments&#x2014;Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets. The amendments in this update provide a practical expedient permitting an entity to assume that conditions at the balance sheet date remain unchanged over the life of the asset when estimating expected credit losses for current classified accounts receivable and contract assets. This update is effective for annual periods beginning after December 15, 2025, including interim periods within those fiscal years. Adoption of this ASU can be applied prospectively for reporting periods after its effective date. Early adoption is permitted. We are currently evaluating the provisions of this ASU and do not expect this ASU to have a material impact on our consolidated financial statements.&lt;/p&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_816">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The interim unaudited condensed consolidated financial statements included herein, presented in accordance with generally accepted accounting principles in the United States of America (GAAP), and stated in U.S. dollars, have been prepared by us, without an audit, pursuant to the rules and regulations of the U.S. Securities and Exchange Commission (the &#x201c;SEC&#x201d;). Certain information and footnote disclosures normally included in financial statements prepared in accordance with GAAP have been condensed or omitted pursuant to such rules and regulations, although we believe that the disclosures are adequate to make the information presented not misleading.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;These financial statements reflect all adjustments, consisting of normal recurring adjustments, which, in the opinion of management, are necessary for fair presentation of the information contained therein. These unaudited condensed consolidated financial statements should be read in conjunction with our audited financial statements for the year ended December 31, 2024, and notes thereto which are included in the annual report on Form 10-K previously filed with the SEC on April 14, 2025, as amended (the &#x201c;Annual Report&#x201d;). We follow the same accounting policies in the preparation of interim reports. The results of operations for the interim periods covered by this Form 10-Q may not necessarily be indicative of results of operations for the full fiscal year or any other interim period.&lt;/p&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_794">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The accompanying condensed consolidated financial statements include the accounts of TOMI and its wholly owned subsidiary, TOMI Environmental Solutions, Inc., a Nevada corporation. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription contextRef="From2025-01-01to2025-09-30" id="fid_795">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Certain reclassifications have been made to prior-year comparative financial statements to conform to the current year presentation. These reclassifications had no material effect on previously reported results of operations or financial position.&lt;/p&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:UseOfEstimates contextRef="From2025-01-01to2025-09-30" id="fid_796">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The preparation of the condensed consolidated financial statements in conformity with GAAP requires us to make estimates and assumptions that affect the amounts reported and disclosed in the accompanying consolidated financial statements and the accompanying notes. Actual results could differ materially from these estimates. On an ongoing basis, we evaluate our estimates, including those related to allowance for credit losses, inventory, intangible assets, useful lives of intangible assets and property and equipment, fair values of stock-based awards, income taxes, and contingent liabilities, among others. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable, the results of which form the basis for making judgments about the carrying values of our assets and liabilities.&lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:FairValueMeasurementPolicyPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_797">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The authoritative guidance for fair value measurements defines fair value as the exchange price that would be received for an asset or paid to transfer a liability (an exit price) in the principal or the most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Market participants are buyers and sellers in the principal market that are (i) independent, (ii) knowledgeable, (iii) able to transact, and (iv) willing to transact. The guidance describes a fair value hierarchy based on the levels of input, of which the first two are considered observable and the last unobservable, that may be used to measure fair value, which are the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;font-size:10pt;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="width:4%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:8%;vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 1:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Quoted prices in active markets for identical assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 2:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Inputs other than Level 1 that are observable, either directly or indirectly, such as quoted prices for similar assets or liabilities; quoted prices in markets that are not active; or other inputs that are observable or corroborated by observable market data for substantially the full term of the assets or liabilities.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Level 3:&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;Unobservable inputs that are supported by little or no market activity and that are significant to the value of the assets or liabilities.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable and accrued expenses approximated fair value because of the short maturity of these instruments.&lt;/p&gt;</us-gaap:FairValueMeasurementPolicyPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_798">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Cash and cash equivalents include cash on hand, held at financial institutions and other liquid investments with original maturities of three months or less. At times, these deposits may be more than insured limits. At September 30, 2025, and December 31, 2024, there were no cash equivalents.&lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ReceivablesPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_799">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Accounts receivables are stated at the amount management expects to collect from outstanding balances. The Company generally does not require collateral to support customer receivables. Management assesses the collectability of outstanding customer invoices and maintains an allowance resulting from the expected non-collection of customer receivables. In estimating this reserve, management considers factors such as industry sector, historical collection experience, customer creditworthiness, specific customer risk, and current and expected general economic conditions. For those customers to whom we extend credit, in accordance with the Current Expected Credit Loss (CECL) model, we make a risk-based evaluation at the point of sale which is further reviewed on both an individual and collective (pool) basis during each reporting period based on ASC 326. We are required to estimate and report expected credit losses over the entire life of a financial asset, considering historical data, current conditions, and future forecasts, even if the risk of loss is remote. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We have implemented a policy of reserving credit losses based on our best estimate of the amount of potential credit losses in existing accounts receivable. We periodically review our accounts receivable to determine whether an allowance is necessary based on an analysis of past due accounts and other factors that may indicate that the realization of an account may be at risk. Our allowance for credit losses was as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;2,229,977&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;1,494,347&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Credit loss expense&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;197,639&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,050,543&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Adjustment for uncollectible accounts&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(1,236,069&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(314,913&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;1,191,547&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,229,977&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ReceivablesPolicyTextBlock>
    <tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_817">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;2,229,977&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;1,494,347&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Credit loss expense&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;197,639&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,050,543&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Adjustment for uncollectible accounts&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(1,236,069&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(314,913&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Allowance for credit losses&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;1,191,547&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,229,977&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:ScheduleOfAllowanceForCreditLossesTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1"
      unitRef="USD">2229977</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_890"
      unitRef="USD">1494347</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <tomz:AccountsAndFinancingReceivableForCreditLoss
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_3"
      unitRef="USD">197639</tomz:AccountsAndFinancingReceivableForCreditLoss>
    <tomz:AccountsAndFinancingReceivableForCreditLoss
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_2"
      unitRef="USD">1050543</tomz:AccountsAndFinancingReceivableForCreditLoss>
    <us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_5"
      unitRef="USD">1236069</us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss>
    <us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_4"
      unitRef="USD">314913</us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_7"
      unitRef="USD">1191547</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_6"
      unitRef="USD">2229977</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:InventoryPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_800">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Inventories are valued at the lower of cost or net realizable value using the first-in, first-out (FIFO) method. Inventories consist primarily of finished goods and raw materials. We expense certification costs to cost of goods sold as incurred.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We review inventory on an ongoing basis, considering factors such as deterioration and obsolescence, and future customer demand. We record an allowance for estimated losses when the facts and circumstances indicate that inventories may not be usable or realized when comparing current inventory levels to anticipated demand for our product.&#160; Our reserve for obsolete inventory was $868,000 and $1,100,000 as of September 30, 2025, and December 31, 2024, respectively.&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <tomz:InventoryValuationReserve
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_59"
      unitRef="USD">868000</tomz:InventoryValuationReserve>
    <tomz:InventoryValuationReserve
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_58"
      unitRef="USD">1100000</tomz:InventoryValuationReserve>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_801">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We account for property and equipment at cost less accumulated depreciation. We compute depreciation using the straight-line method over the estimated useful lives of the assets, generally three to five years. Depreciation commences for equipment, furniture and fixtures and vehicles, once placed in service for its intended use. Leasehold improvements are amortized using the straight-line method over the remaining lease term at the time the asset was placed into service or the service lives of the improvements, whichever is shorter.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_802">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We recognize a right-of-use (&#x201c;ROU&#x201d;) asset and lease liability for all leases with terms of more than 12 months, in accordance with ASC 842. We utilize the short-term lease recognition exemption for all asset classes as part of our on-going accounting under ASC 842. This means, for those leases that qualify, we will not recognize ROU assets or lease liabilities. Recognition, measurement and presentation of expenses depend upon classification as a finance or operating lease.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As a lessee, we utilize the reasonably certain threshold criteria in determining which options we will exercise. Furthermore, our lease payments are based on index rates with minimum annual increases. These represent fixed payments and are captured in the future minimum lease payments calculation. In determining the discount rate to use in calculating the present value of lease payments, we used our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We have also elected the practical expedient not to separate lease and non-lease components for all asset classes, meaning all consideration that is fixed, or in-substance fixed, will be captured as part of our lease components for balance sheet purposes. Furthermore, all variable payments included in lease agreements will be disclosed as variable lease expense when incurred. Generally, variable lease payments are based on usage and common area maintenance. These payments will be included as variable lease expense in the period in which they are incurred.&lt;/p&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <tomz:AccountsPayablePolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_803">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September 30, 2025, one vendor accounted for approximately 46% of accounts payable. As of December 31, 2024, one vendor accounted for approximately 60% of accounts payable.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the three and nine months ended September 30, 2025, two vendors accounted for 59% and 50% of cost of sales, respectively. For the three and nine months ended September 30, 2024, two vendors accounted for 53% and 65% of cost of sales, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;</tomz:AccountsPayablePolicyTextBlock>
    <tomz:ConcentrationRiskPercentage
      contextRef="AsOf2025-09-30_tomz_OneVendorsMember_us-gaap_AccountsPayableMember"
      decimals="2"
      id="fid_99"
      unitRef="Pure">0.46</tomz:ConcentrationRiskPercentage>
    <tomz:ConcentrationRiskPercentage
      contextRef="AsOf2024-12-31_tomz_OneVendorsMember_us-gaap_AccountsPayableMember"
      decimals="1"
      id="fid_67"
      unitRef="Pure">0.60</tomz:ConcentrationRiskPercentage>
    <tomz:ConcentrationRiskInPercentage
      contextRef="From2025-07-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="2"
      id="fid_944"
      unitRef="Pure">0.59</tomz:ConcentrationRiskInPercentage>
    <tomz:ConcentrationRiskInPercentage
      contextRef="From2025-01-01to2025-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="1"
      id="fid_70"
      unitRef="Pure">0.50</tomz:ConcentrationRiskInPercentage>
    <tomz:ConcentrationRiskInPercentage
      contextRef="From2024-07-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="2"
      id="fid_946"
      unitRef="Pure">0.53</tomz:ConcentrationRiskInPercentage>
    <tomz:ConcentrationRiskInPercentage
      contextRef="From2024-01-01to2024-09-30_tomz_TwoVendorsMember_us-gaap_CostOfSalesMember"
      decimals="2"
      id="fid_101"
      unitRef="Pure">0.65</tomz:ConcentrationRiskInPercentage>
    <us-gaap:ExtendedProductWarrantyPolicy contextRef="From2025-01-01to2025-09-30" id="fid_804">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Accrued warranties represent the estimated costs, if any, that will be incurred during the warranty period of our products. We estimate the expected costs to be incurred during the warranty period and record the expense to the consolidated statement of operations at the date of sale. Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results.&#160; As of September 30, 2025, and December 31, 2024, our warranty reserve was $22,648 and $30,000, respectively. (See Note 14).&lt;/p&gt;</us-gaap:ExtendedProductWarrantyPolicy>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_61"
      unitRef="USD">22648</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_60"
      unitRef="USD">30000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsWarrantyReserves>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_805">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits that are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes guidance for income taxes.&#160; Net deferred tax assets have been fully reserved as of September 30, 2025, and December 31, 2024.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_806">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Basic net income or (loss) per share is computed by dividing our net income or (loss) by the weighted average number of shares of common stock outstanding during the period presented. Diluted income or (loss) per share is based on the effect from potential issuance of shares of common stock, such as shares issuable pursuant to the exercise of options and warrants and conversions of preferred stock or debentures. The computation of diluted EPS is similar to the computation of basic EPS except that the numerator may have to adjust for any dividends and income or loss associated with potentially dilutive securities that are assumed to have resulted in the issuance of shares of common stock and the denominator may have to adjust to include the number of additional shares of common stock that would have been outstanding if the dilutive potential shares of common stock had been issued during the period to reflect the potential dilution that could occur from shares of common stock issuable through a contingent shares issuance arrangement, stock options, warrants, or convertible preferred stock. For purposes of determining diluted earnings per common share, the treasury stock method is used for stock options, and warrants, and the if-converted method is used for convertible preferred stock and convertible debt as prescribed in FASB ASC Topic 260. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Potentially dilutive securities as of September 30, 2025, consisted of 2,508,000 shares of common stock from convertible debentures, 2,604,388 shares of common stock issuable upon exercise of outstanding warrants, 768,792 shares of common stock issuable upon outstanding stock options and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Potentially dilutive securities as of September 30, 2024, consisted of 2,080,000 shares of common stock from convertible debentures, 2,765,846 shares of common stock issuable upon exercise of outstanding warrants, 805,042 shares of common stock issuable upon vesting of stock options and exercise and 63,750 shares of common stock issuable upon conversion of outstanding shares of Convertible Series A Preferred Stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Options, warrants, preferred stock and shares associated with the conversion of debt to purchase approximately 5.9 million and 5.7 million shares of common stock were outstanding on September 30, 2025, and 2024, respectively but were excluded from the computation of diluted net loss per share at September 30, 2025 and 2024 due to anti-dilutive effect on net loss per share.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Adjustments for convertible debt - as converted:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Interest on convertible debt net of effective tax rate (28%)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average number of shares of common stock outstanding:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,015,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,096,751&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;The following provides a reconciliation of the shares used in calculating the per share amounts for the periods presented:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Basic weighted-average shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,015,205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Effect of dilutive securities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,908&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Convertible Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;11,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Preferred Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;63,750&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted Weighted Average Shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,096,751&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;The following table sets forth the number of potential shares of common stock that have been excluded from diluted net income (loss) per share because their effect was anti-dilutive:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;573,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,734,596&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,508,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,080,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,881,180&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,387,596&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Note: Warrants, options, convertible debt and preferred stock for the nine months ending September 30, 2025 and 2024, are not included in the computation of diluted weighted average shares as such inclusion would be anti-dilutive.&lt;/p&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2025-09-30_tomz_ConvertibleDebenturesMember"
      decimals="0"
      id="fid_75"
      unitRef="Shares">2508000</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2025-09-30_tomz_WarrantsMember"
      decimals="0"
      id="fid_76"
      unitRef="Shares">2604388</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2025-09-30_tomz_StockOptionsMember"
      decimals="0"
      id="fid_77"
      unitRef="Shares">768792</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2025-09-30_tomz_PreferredAStockMember"
      decimals="0"
      id="fid_78"
      unitRef="Shares">63750</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2024-09-30_tomz_ConvertibleDebenturesMember"
      decimals="0"
      id="fid_103"
      unitRef="Shares">2080000</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2024-09-30_tomz_WarrantsMember"
      decimals="0"
      id="fid_104"
      unitRef="Shares">2765846</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2024-09-30_tomz_StockOptionsMember"
      decimals="0"
      id="fid_105"
      unitRef="Shares">805042</tomz:PotentiallyDilutiveSecurities>
    <tomz:PotentiallyDilutiveSecurities
      contextRef="AsOf2024-09-30_tomz_PreferredAStockMember"
      decimals="0"
      id="fid_106"
      unitRef="Shares">63750</tomz:PotentiallyDilutiveSecurities>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="AsOf2025-09-30_tomz_EquityIncentivePlanOneMember"
      decimals="-5"
      id="fid_82"
      unitRef="Shares">5900000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="AsOf2024-09-30_tomz_EquityIncentivePlanOneMember"
      decimals="-5"
      id="fid_107"
      unitRef="Shares">5700000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_818">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Adjustments for convertible debt - as converted:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Interest on convertible debt net of effective tax rate (28%)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted average number of shares of common stock outstanding:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,015,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;20,096,751&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_8"
      unitRef="USD">-450348</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_9"
      unitRef="USD">58962</us-gaap:NetIncomeLoss>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1558"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1559"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalEquityComponentOfConvertibleDebt>
    <tomz:InterestOnConvertibleDebtNet
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_895"
      unitRef="USD">0</tomz:InterestOnConvertibleDebtNet>
    <tomz:InterestOnConvertibleDebtNet
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_896"
      unitRef="USD">0</tomz:InterestOnConvertibleDebtNet>
    <tomz:NetLossAttributableToCommonShareholders
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_10"
      unitRef="USD">-450348</tomz:NetLossAttributableToCommonShareholders>
    <tomz:NetLossAttributableToCommonShareholders
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_11"
      unitRef="USD">58962</tomz:NetLossAttributableToCommonShareholders>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_13"
      unitRef="Shares">20075205</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_14"
      unitRef="Shares">20015205</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_15"
      unitRef="Shares">20075205</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_16"
      unitRef="Shares">20096751</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:BasicEarningsPerShareProForma
      contextRef="From2025-07-01to2025-09-30"
      decimals="INF"
      id="fid_18"
      unitRef="USDPShares">-0.02</us-gaap:BasicEarningsPerShareProForma>
    <us-gaap:BasicEarningsPerShareProForma
      contextRef="From2024-07-01to2024-09-30"
      decimals="INF"
      id="fid_19"
      unitRef="USDPShares">0.00</us-gaap:BasicEarningsPerShareProForma>
    <us-gaap:DilutedEarningsPerShareProForma
      contextRef="From2025-07-01to2025-09-30"
      decimals="INF"
      id="fid_20"
      unitRef="USDPShares">-0.02</us-gaap:DilutedEarningsPerShareProForma>
    <us-gaap:DilutedEarningsPerShareProForma
      contextRef="From2024-07-01to2024-09-30"
      decimals="INF"
      id="fid_21"
      unitRef="USDPShares">0.00</us-gaap:DilutedEarningsPerShareProForma>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_819">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Numerator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Net Income (Loss)&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(450,348&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;58,962&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Denominator:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Basic weighted-average shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;20,015,205&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Effect of dilutive securities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,908&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Convertible Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;11,888&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:15px"&gt;Preferred Stock&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;63,750&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted Weighted Average Shares&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,075,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;20,096,751&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Net income (loss) attributable to common shareholders per share:&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Basic &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Diluted&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;(0.02&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;0.00&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Options&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;573,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Warrants&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,734,596&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Debt&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,508,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,080,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total anti-dilutive shares &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,881,180&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;5,387,596&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_22"
      unitRef="USD">-450348</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_23"
      unitRef="USD">58962</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_24"
      unitRef="Shares">20075205</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:WeightedAverageNumberOfSharesIssuedBasic
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_25"
      unitRef="Shares">20015205</us-gaap:WeightedAverageNumberOfSharesIssuedBasic>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_898"
      unitRef="Shares">5908</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30_tomz_StockOptionsMember"
      decimals="0"
      id="fid_905"
      unitRef="Shares">11888</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30_tomz_PreferredStocksMember"
      decimals="0"
      id="fid_907"
      unitRef="Shares">63750</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_26"
      unitRef="Shares">20075205</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_27"
      unitRef="Shares">20096751</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:DilutedEarningsPerShareProForma
      contextRef="From2025-07-01to2025-09-30"
      decimals="INF"
      id="fid_908"
      unitRef="USDPShares">-0.02</us-gaap:DilutedEarningsPerShareProForma>
    <us-gaap:DilutedEarningsPerShareProForma
      contextRef="From2024-07-01to2024-09-30"
      decimals="INF"
      id="fid_909"
      unitRef="USDPShares">0.00</us-gaap:DilutedEarningsPerShareProForma>
    <us-gaap:BasicEarningsPerShareProForma
      contextRef="From2025-07-01to2025-09-30"
      decimals="INF"
      id="fid_910"
      unitRef="USDPShares">-0.02</us-gaap:BasicEarningsPerShareProForma>
    <us-gaap:BasicEarningsPerShareProForma
      contextRef="From2024-07-01to2024-09-30"
      decimals="INF"
      id="fid_911"
      unitRef="USDPShares">0.00</us-gaap:BasicEarningsPerShareProForma>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2025-07-01to2025-09-30_tomz_StockOptionsMember"
      decimals="0"
      id="fid_924"
      unitRef="Shares">768792</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30_tomz_StockOptionsMember"
      decimals="0"
      id="fid_925"
      unitRef="Shares">573000</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2025-07-01to2025-09-30_tomz_WarrantsMember"
      decimals="0"
      id="fid_926"
      unitRef="Shares">2604388</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30_tomz_WarrantsMember"
      decimals="0"
      id="fid_927"
      unitRef="Shares">2734596</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2025-07-01to2025-09-30_us-gaap_ConvertibleDebtMember"
      decimals="0"
      id="fid_1562"
      unitRef="Shares">2508000</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30_us-gaap_ConvertibleDebtMember"
      decimals="0"
      id="fid_1563"
      unitRef="Shares">2080000</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_929"
      unitRef="Shares">5881180</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_930"
      unitRef="Shares">5387596</tomz:AntidilutiveExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_807">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We recognize revenue in accordance with the Financial Accounting Standards Board (FASB) Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic 606, Revenue from Contracts with Customers. We recognize revenue when we transfer promised goods or services to customers in an amount that reflects the consideration to which we expect to be entitled in exchange for those goods or services. To determine revenue recognition for contracts with customers we perform the following five steps: (i) identify the contract(s) with a customer; (ii) identify the performance obligation(s) in the contract; (iii) determine the transaction price; (iv) allocate the transaction price to the performance obligation(s) in the contract; and (v) recognize revenue when (or as) we satisfy the performance obligation(s). At contract inception, we assess the goods or services promised within each contract, assess whether each promised good or service is distinct and identify those that are performance obligations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We must use judgment to determine: a) the number of performance obligations based on the determination under step (ii) above and whether those performance obligations are distinct from other performance obligations in the contract; b) the transaction price under step (iii) above for each distinct performance obligation identified in step (ii) above; and c) the stand-alone selling price for each performance obligation identified in the contract for the allocation of transaction price in step (iv) above.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Title and risk of loss generally pass to our customers upon shipment. Our customers include end users as well as dealers and distributors who market and sell our products. Our revenue is not contingent upon resale by the dealer or distributor, and we have no further obligations related to resale of our products by dealers and distributors. Shipping and handling costs charged to customers are included in Product Revenues. The associated expenses are treated as fulfillment costs and are included in Cost of Revenues. Revenues are reported net of sales taxes collected from Customers.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Disaggregation of Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The following table presents our approximate revenue disaggregated by revenue source.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Product and Service Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,603,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,766,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;409,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;776,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,012,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,542,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Revenue by Geographic Region&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,280,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,886,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;732,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;656,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,012,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,542,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Product and Service Revenue&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,255,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,247,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,364,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,423,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,619,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,670,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Revenue by Geographic Region&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,294,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,169,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,325,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,501,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,619,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,670,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Product revenue includes sales from our standard and customized equipment, solutions and accessories sold with our equipment. Revenue is recognized upon transfer of control of promised products to customers in an amount that reflects the consideration we expect to receive in exchange for those products.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Service and training revenue include sales from our high-level decontamination and service engagements, validation of our equipment and technology and customer training. Service revenue is recognized when the services agreed upon are rendered to our customers at an amount that reflects the consideration we expect to receive in exchange for those services.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Estimated allowances for sales returns are recorded as sales are recognized. We use a specific identification method based on subsequent product return activity and historical average calculations to estimate the allowance for sales returns. Our allowance for sales returns as of September 30, 2025, was $90,540 and $227,000 at December 31, 2024, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Costs to Obtain a Contract with a Customer&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We apply a practical expedient to expense costs as incurred for costs to obtain a contract with a customer when the amortization period would have been one year or less. We generally expense sales commissions when incurred because the amortization period would have been one year or less. These costs are recorded within selling expenses.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Contract Balances&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September 30, 2025, and December 31, 2024, we had contract balances and unsatisfied performance obligations for (i) contracts with an original expected length of one year or less and (ii) contracts for which we recognize revenue at the amount to which we have the right to invoice for services performed in the amounts of $309,752 and $211,724, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Arrangements with Multiple Performance Obligations&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our contracts with customers may include multiple performance obligations. We enter into contracts that can include various combinations of products and services, which are primarily distinct and accounted for as separate performance obligations.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Significant Judgments&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our contracts with customers for products and services often dictate the terms and conditions of when the control of the promised products or services is transferred to the customer and the amount of consideration to be received in exchange for the products and services. We also record an estimated allowance for anticipated product returns.&lt;/p&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_820">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,603,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,766,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;409,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;776,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,012,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,542,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,280,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1,886,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;732,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;656,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,012,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;2,542,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;SteraMist Product&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,255,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,247,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Service and Training&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,364,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,423,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,619,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,670,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30,&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;United States&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;3,294,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;5,169,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;International&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,325,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1,501,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;4,619,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;6,670,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-07-01to2025-09-30_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_931"
      unitRef="USD">1603000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-07-01to2024-09-30_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_932"
      unitRef="USD">1766000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-07-01to2025-09-30_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_933"
      unitRef="USD">409000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-07-01to2024-09-30_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_942"
      unitRef="USD">776000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-07-01to2025-09-30_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_934"
      unitRef="USD">2012000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-07-01to2024-09-30_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_941"
      unitRef="USD">2542000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-07-01to2025-09-30_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_935"
      unitRef="USD">1280000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-07-01to2024-09-30_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_940"
      unitRef="USD">1886000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-07-01to2025-09-30_tomz_InternationalMember"
      decimals="0"
      id="fid_937"
      unitRef="USD">732000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-07-01to2024-09-30_tomz_InternationalMember"
      decimals="0"
      id="fid_939"
      unitRef="USD">656000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-07-01to2025-09-30_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_936"
      unitRef="USD">2012000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-07-01to2024-09-30_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_938"
      unitRef="USD">2542000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-01-01to2025-09-30_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_32"
      unitRef="USD">3255000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-01-01to2024-09-30_tomz_SteraMistPRoductMember"
      decimals="0"
      id="fid_88"
      unitRef="USD">5247000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-01-01to2025-09-30_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_34"
      unitRef="USD">1364000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-01-01to2024-09-30_tomz_ServiceAndTrainingMember"
      decimals="0"
      id="fid_89"
      unitRef="USD">1423000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-01-01to2025-09-30_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_36"
      unitRef="USD">4619000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-01-01to2024-09-30_tomz_ProductAndServiceRevenueMember"
      decimals="0"
      id="fid_91"
      unitRef="USD">6670000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-01-01to2025-09-30_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_97"
      unitRef="USD">3294000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-01-01to2024-09-30_tomz_UnitedStatesMember"
      decimals="0"
      id="fid_98"
      unitRef="USD">5169000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-01-01to2025-09-30_tomz_InternationalMember"
      decimals="0"
      id="fid_38"
      unitRef="USD">1325000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-01-01to2024-09-30_tomz_InternationalMember"
      decimals="0"
      id="fid_93"
      unitRef="USD">1501000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2025-01-01to2025-09-30_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_40"
      unitRef="USD">4619000</us-gaap:SalesTypeLeaseRevenue>
    <us-gaap:SalesTypeLeaseRevenue
      contextRef="From2024-01-01to2024-09-30_tomz_GeographicRegionMember"
      decimals="0"
      id="fid_95"
      unitRef="USD">6670000</us-gaap:SalesTypeLeaseRevenue>
    <tomz:SalesReturnsAllowanceDuringPeriod
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_57"
      unitRef="USD">90540</tomz:SalesReturnsAllowanceDuringPeriod>
    <tomz:SalesReturnsAllowanceDuringPeriod
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="fid_56"
      unitRef="USD">227000</tomz:SalesReturnsAllowanceDuringPeriod>
    <tomz:RecognizeRevenue
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_54"
      unitRef="USD">309752</tomz:RecognizeRevenue>
    <tomz:RecognizeRevenue
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="fid_55"
      unitRef="USD">211724</tomz:RecognizeRevenue>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="From2025-01-01to2025-09-30" id="fid_808">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We account for equity compensation expense in accordance with FASB ASC 718, &#x201c;Compensation-Stock Compensation.&#x201d; Under the provisions of FASB ASC 718, equity compensation expense is estimated at the grant date based on the award&#x2019;s fair value.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The valuation methodology used to determine the fair value of options and warrants issued as compensation during the period is the Black-Scholes option-pricing model. The Black-Scholes model requires the use of a number of assumptions including volatility of the stock price, the average risk-free interest rate, and the weighted average expected life of the options. Risk&#x2013;free interest rates are calculated based on continuously compounded risk&#x2013;free rates for the appropriate term. The expected term of the Company&#x2019;s warrants has been determined utilizing the &#x201c;simplified&#x201d; method for awards that qualify as &#x201c;plain-vanilla&#x201d; warrants. The dividend yield is assumed to be zero as the Company has never paid or declared any cash dividends on its common stock, par value $0.01 (the &#x201c;Common Stock&#x201d;) and does not intend to pay dividends on its Common Stock in the foreseeable future.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;On July 7, 2017, our shareholders approved the Company&#x2019;s Amended and Restated 2016 Equity Incentive Plan (the amended &#x201c;2016 Plan&#x201d;). The 2016 Plan authorizes the grant of stock options, stock appreciation rights, restricted stock, restricted stock units and performance units/shares. Up to 2,000,000 shares of Common Stock are authorized for issuance under the 2016 Plan. Shares issued under the 2016 Plan may be either authorized but unissued shares, treasury shares, or any combination thereof. Provisions in the 2016 Plan permit the reuse or reissuance by the 2016 Plan of shares of Common Stock for numerous reasons, including, but not limited to, shares of Common Stock underlying canceled, expired, or forfeited awards of stock-based compensation and stock appreciation rights paid out in the form of cash. Equity compensation expense will typically be awarded in consideration for the future performance of services to us. All recipients of awards under the 2016 Plan are required to enter into award agreements with us at the time of the award, and awards under the 2016 Plan are expressly conditioned upon such agreements. During the nine months ended September&lt;strong&gt; &lt;/strong&gt;30, 2025, and 2024, we issued 60,000 and 60,000 shares of Common Stock, respectively, to members of our Board out of the 2016 Plan.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="AsOf2017-07-07_tomz_EquityIncentivePlanOneMember"
      decimals="0"
      id="fid_85"
      unitRef="Shares">2000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_65"
      unitRef="Shares">60000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_110"
      unitRef="Shares">60000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="From2025-01-01to2025-09-30" id="fid_809">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Financial instruments that potentially subject us to significant concentrations of credit risk consist principally of cash and cash equivalents. We maintain cash balances at financial institutions which exceed the current Federal Deposit Insurance Corporation limit of $250,000 at times during the year.&lt;/p&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:FederalDepositInsuranceCorporationPremiumExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_108"
      unitRef="USD">250000</us-gaap:FederalDepositInsuranceCorporationPremiumExpense>
    <tomz:LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_810">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We assess long-lived assets for potential impairments at the end of each year, or during the year if an event or other circumstance indicates that we may not be able to recover the carrying amount of the asset. In evaluating long-lived assets for impairment, we measure recoverability of these assets by comparing the carrying amounts to the future undiscounted cash flows the assets are expected to generate. If our long-lived assets are considered to be impaired, the impairment to be recognized equals the amount by which the carrying value of the asset exceeds its fair market value. We base the calculations of the estimated fair value of our long-lived assets on the income approach. For the income approach, we use an internally developed discounted cash flow model that includes, among others, the following assumptions: projections of revenues and expenses and related cash flows based on assumed long-term growth rates and demand trends; expected future investments to grow new units; and estimated discount rates. We base these assumptions on our historical data and experience, industry projections, micro and macro general economic condition projections, and our expectations. We had no long-lived asset impairment charges for the three and nine months ended September 30, 2025, and 2024.&lt;/p&gt;</tomz:LonglivedAssetsIncludingAcquiredIntangibleAssetsPolicyTextBlock>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_811">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Advertising and promotional costs are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, advertising and promotional expenses included in selling expenses were approximately $24,000 and $88,000, respectively. For the same periods in 2024, these expenses were approximately $35,000 and $192,000, respectively.&lt;/p&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_947"
      unitRef="USD">24000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_63"
      unitRef="USD">88000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_948"
      unitRef="USD">35000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_109"
      unitRef="USD">192000</us-gaap:AdvertisingExpense>
    <us-gaap:ResearchAndDevelopmentExpensePolicy contextRef="From2025-01-01to2025-09-30" id="fid_812">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Research and development expenses are expensed in the period they are incurred. For the three and nine months ended September 30, 2025, these expenses were approximately $11,000 and $139,000, respectively. For the same periods in 2024, research and development expenses were approximately $56,000 and $186,000, respectively.&lt;/p&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:OtherResearchAndDevelopmentExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_949"
      unitRef="USD">11000</us-gaap:OtherResearchAndDevelopmentExpense>
    <us-gaap:OtherResearchAndDevelopmentExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_950"
      unitRef="USD">139000</us-gaap:OtherResearchAndDevelopmentExpense>
    <us-gaap:OtherResearchAndDevelopmentExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_951"
      unitRef="USD">56000</us-gaap:OtherResearchAndDevelopmentExpense>
    <us-gaap:OtherResearchAndDevelopmentExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_952"
      unitRef="USD">186000</us-gaap:OtherResearchAndDevelopmentExpense>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_813">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We currently have one reportable business segment due to the fact that we derive our revenue primarily from one product in which 1) The business activities are homogenous in nature, 2) The entire operation faces similar market conditions and risks, 3) There is a high degree of integration in its operations, 4) Internal evaluations of financial results are conducted on a consolidated basis. A breakdown of revenue is presented in &#x201c;Revenue Recognition&#x201d; in Note 2 above. See Note 17, Segment Reporting for more details. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.&lt;/p&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <tomz:GoingConcernPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_814">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the nine months ended September 30, 2025, and 2024, our net loss was approximately $1,943,000 and $1,221,000, respectively, and the cash used in operations was approximately $577,000 and $1,453,000, respectively. As of September 30, 2025, we had approximately $490,000 cash and cash equivalents and an accumulated deficit of $56.2 million. These factors raise substantial doubt about the Company&#x2019;s ability to continue as a going concern within one year after the date the financial statements are issued. The Company&#x2019;s consolidated financial statements have been prepared on the basis of continuity of operations, realization of assets and satisfaction of liabilities in the ordinary course of business; no adjustments have been made relating to the recoverability and classification of recorded asset amounts and classification of liabilities that might be necessary should the Company not continue as a going concern.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The Company intends to fund ongoing activities by utilizing its current cash on hand, the cash generated from operations, and by raising additional capital through equity or debt financings. There can be no assurance that the Company will be successful in raising that additional capital or that such capital, if available, will be on terms that are acceptable to us, as our ability to raise capital may be affected by various factors, including general market conditions, volatility of our stock price, investor interests and expectations, and our financial performance. &lt;/p&gt;</tomz:GoingConcernPolicyTextBlock>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_48"
      unitRef="USD">-1943000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1564"
      unitRef="USD">-1221000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetCashProvidedByUsedInContinuingOperations
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_50"
      unitRef="USD">577000</us-gaap:NetCashProvidedByUsedInContinuingOperations>
    <us-gaap:NetCashProvidedByUsedInContinuingOperations
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1565"
      unitRef="USD">1453000</us-gaap:NetCashProvidedByUsedInContinuingOperations>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_111"
      unitRef="USD">490000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <tomz:RetainedEarningAccumulatedDeficit
      contextRef="AsOf2025-09-30"
      decimals="-5"
      id="fid_53"
      unitRef="USD">-56200000</tomz:RetainedEarningAccumulatedDeficit>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_815">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;em&gt;Recently issued accounting pronouncements not yet adopted&lt;/em&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In December 2023, FASB issued ASU No. 2023-09, Improvements to Income Tax Disclosures (Topic 740). The ASU requires disaggregated information about a reporting entity&#x2019;s effective tax rate reconciliation as well as additional information on income taxes paid. The ASU is effective on a prospective basis for annual periods beginning after December 15, 2024. Early adoption is also permitted for annual financial statements that have not yet been issued or made available for issuance. The Company will adopt ASU 2023-09 in its fourth quarter of 2025 using a prospective transition method.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In November 2024, FASB issued ASU No. 2024-03, Disaggregation of Income Statement Expenses (Subtopic 220-40). In January 2025, ASU No. 2025-01 was issued to clarify the effective date for all public business entities. The ASU requires the disaggregated disclosure of specific expense categories, including purchases of inventory, employee compensation, depreciation, and amortization, within relevant income statement captions. This ASU also requires disclosure of the total amount of selling expenses along with the definition of selling expenses. The ASU is effective for annual periods beginning after December 15, 2026, and interim periods within fiscal years beginning after December 15, 2027. Adoption of this ASU can either be applied prospectively to consolidated financial statements issued for reporting periods after the effective date of this ASU or retrospectively to any or all prior periods presented in the consolidated financial statements. Early adoption is also permitted. This ASU will likely result in the required additional disclosures being included in our consolidated financial statements once adopted. We are currently evaluating the provisions of this ASU.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In July 2025, FASB issued ASU No. 2025-05, Financial Instruments&#x2014;Credit Losses (Topic 326): Measurement of Credit Losses for Accounts Receivable and Contract Assets. The amendments in this update provide a practical expedient permitting an entity to assume that conditions at the balance sheet date remain unchanged over the life of the asset when estimating expected credit losses for current classified accounts receivable and contract assets. This update is effective for annual periods beginning after December 15, 2025, including interim periods within those fiscal years. Adoption of this ASU can be applied prospectively for reporting periods after its effective date. Early adoption is permitted. We are currently evaluating the provisions of this ASU and do not expect this ASU to have a material impact on our consolidated financial statements.&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:InventoryDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_777">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 3. INVENTORIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Inventories consist of the following at (rounded to the nearest thousandth):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Finished Goods&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,332,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,800,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Raw Materials&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;900,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;878,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Inventory Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(868,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(1,100,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;3,364,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;3,578,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our inventory reserve decreased by $232,000 during the nine months ended September 30, 2025 due to higher than anticipated equipment sales during the current fiscal year.&lt;/p&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_821">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Finished Goods&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,332,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,800,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Raw Materials&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;900,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;878,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Inventory Reserve&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(868,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(1,100,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;3,364,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;3,578,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_157"
      unitRef="USD">3332000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_158"
      unitRef="USD">3800000</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryRawMaterials
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_159"
      unitRef="USD">900000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_160"
      unitRef="USD">878000</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_161"
      unitRef="USD">868000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_162"
      unitRef="USD">1100000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_163"
      unitRef="USD">3364000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_164"
      unitRef="USD">3578000</us-gaap:InventoryNet>
    <tomz:VendorDepositsTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_778">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 4. VENDOR DEPOSITS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;At September 30, 2025, and December 31, 2024, we maintained vendor deposits of $222,065 and $35,895, respectively, for open purchase orders for inventory.&lt;/p&gt;</tomz:VendorDepositsTextBlock>
    <us-gaap:Deposits
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_165"
      unitRef="USD">222065</us-gaap:Deposits>
    <us-gaap:Deposits
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_166"
      unitRef="USD">35895</us-gaap:Deposits>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_779">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 5. PROPERTY AND EQUIPMENT&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Property and equipment consist of the following at:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;458,652&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;458,652&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,316,200&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,301,803&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Vehicles&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;66,170&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;66,170&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Computer and software&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;318,999&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;316,334&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;393,381&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;393,381&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Tenant Improvement Allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total cost of Property and Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3,958,402&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3,941,340&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Accumulated Depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;3,279,874&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;3,065,891&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Property and Equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;678,528&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;875,449&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the three and nine months ended September&lt;strong&gt; &lt;/strong&gt;30, 2025, depreciation was $60,822 and $184,587, respectively. For the three and nine months ended September&lt;strong&gt; &lt;/strong&gt;30, 2024, depreciation was $65,031 and $209,751, respectively. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the three and nine months ended September&lt;strong&gt; &lt;/strong&gt;30, 2025, and 2024, amortization of tenant improvement allowance was $9,798 and $29,395, respectively and was recorded as lease expense and included within general and administrative expense on the consolidated statement of operations.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_822">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Furniture and fixtures&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;458,652&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;458,652&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,316,200&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,301,803&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Vehicles&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;66,170&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;66,170&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Computer and software&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;318,999&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;316,334&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Leasehold improvements&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;393,381&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;393,381&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Tenant Improvement Allowance&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;405,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total cost of Property and Equipment&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3,958,402&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3,941,340&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Accumulated Depreciation&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;3,279,874&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;3,065,891&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Property and Equipment, net&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;678,528&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;875,449&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:FurnitureAndFixturesGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_167"
      unitRef="USD">458652</us-gaap:FurnitureAndFixturesGross>
    <us-gaap:FurnitureAndFixturesGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_168"
      unitRef="USD">458652</us-gaap:FurnitureAndFixturesGross>
    <tomz:EquipmentsGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_169"
      unitRef="USD">2316200</tomz:EquipmentsGross>
    <tomz:EquipmentsGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_170"
      unitRef="USD">2301803</tomz:EquipmentsGross>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_171"
      unitRef="USD">66170</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_172"
      unitRef="USD">66170</us-gaap:PublicUtilitiesPropertyPlantAndEquipmentVehicles>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_173"
      unitRef="USD">318999</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:CapitalizedComputerSoftwareGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_174"
      unitRef="USD">316334</us-gaap:CapitalizedComputerSoftwareGross>
    <us-gaap:LeaseholdImprovementsGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_175"
      unitRef="USD">393381</us-gaap:LeaseholdImprovementsGross>
    <us-gaap:LeaseholdImprovementsGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_176"
      unitRef="USD">393381</us-gaap:LeaseholdImprovementsGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_177"
      unitRef="USD">405000</us-gaap:ConstructionInProgressGross>
    <us-gaap:ConstructionInProgressGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_178"
      unitRef="USD">405000</us-gaap:ConstructionInProgressGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_179"
      unitRef="USD">3958402</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_180"
      unitRef="USD">3941340</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_181"
      unitRef="USD">3279874</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_182"
      unitRef="USD">3065891</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentOtherNet
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_183"
      unitRef="USD">678528</us-gaap:PropertyPlantAndEquipmentOtherNet>
    <us-gaap:PropertyPlantAndEquipmentOtherNet
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_184"
      unitRef="USD">875449</us-gaap:PropertyPlantAndEquipmentOtherNet>
    <us-gaap:Depreciation
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_953"
      unitRef="USD">60822</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_185"
      unitRef="USD">184587</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_954"
      unitRef="USD">65031</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_186"
      unitRef="USD">209751</us-gaap:Depreciation>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_955"
      unitRef="USD">9798</tomz:AmortizationOfTenantImprovementAllowance>
    <tomz:AmortizationOfTenantImprovementAllowance
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_187"
      unitRef="USD">29395</tomz:AmortizationOfTenantImprovementAllowance>
    <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_780">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 6. INTANGIBLE ASSETS &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Intangible assets consist of patents and trademarks related to our Binary Ionization Technology. We amortize the patents over the estimated remaining lives of the related patents. Trademarks have an indefinite life. Amortization expenses were $7,766 and $21,781 for the three and nine months ended September 30, 2025, respectively. Amortization expenses were $4,878 and $14,633 for the three and nine months ended September 30, 2024, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Definite life intangible assets consist of the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Intellectual Property and Patents&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,449,482&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,350,031&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Accumulated Amortization&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;2,952,102&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;2,930,321&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Patents, net&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;497,380&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;419,710&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Indefinite life intangible assets consist of the following:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Trademarks&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;861,825&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;830,864&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Intangible Assets, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,359,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,250,574&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Approximate future amortization is as follows (rounded to nearest thousand):&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;October 1 - December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2028&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2029&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Thereafter &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;378,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;497,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_957"
      unitRef="USD">7766</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_207"
      unitRef="USD">21781</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_958"
      unitRef="USD">4878</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_208"
      unitRef="USD">14633</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_823">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31,&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Intellectual Property and Patents&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,449,482&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,350,031&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Accumulated Amortization&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;2,952,102&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;2,930,321&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Patents, net&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;497,380&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;419,710&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2025-09-30_us-gaap_IntellectualPropertyMember"
      decimals="0"
      id="fid_189"
      unitRef="USD">3449482</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="AsOf2024-12-31_us-gaap_IntellectualPropertyMember"
      decimals="0"
      id="fid_190"
      unitRef="USD">3350031</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2025-09-30_us-gaap_IntellectualPropertyMember"
      decimals="0"
      id="fid_191"
      unitRef="USD">2952102</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="AsOf2024-12-31_us-gaap_IntellectualPropertyMember"
      decimals="0"
      id="fid_192"
      unitRef="USD">2930321</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="AsOf2025-09-30_us-gaap_IntellectualPropertyMember"
      decimals="0"
      id="fid_193"
      unitRef="USD">497380</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="AsOf2024-12-31_us-gaap_IntellectualPropertyMember"
      decimals="0"
      id="fid_194"
      unitRef="USD">419710</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_824">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Trademarks&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;861,825&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;830,864&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Intangible Assets, net&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,359,205&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;1,250,574&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfIndefiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:IndefiniteLivedTrademarks
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_195"
      unitRef="USD">861825</us-gaap:IndefiniteLivedTrademarks>
    <us-gaap:IndefiniteLivedTrademarks
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_196"
      unitRef="USD">830864</us-gaap:IndefiniteLivedTrademarks>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_197"
      unitRef="USD">1359205</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_198"
      unitRef="USD">1250574</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_825">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;October 1 - December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;7,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2028&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2029&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;28,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Thereafter &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;378,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;497,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_200"
      unitRef="USD">7000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_201"
      unitRef="USD">28000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_202"
      unitRef="USD">28000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_203"
      unitRef="USD">28000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_206"
      unitRef="USD">28000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_204"
      unitRef="USD">378000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <tomz:FiniteLivedIntangibleAssetNet
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_205"
      unitRef="USD">497000</tomz:FiniteLivedIntangibleAssetNet>
    <us-gaap:LeasesOfLesseeDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_781">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 7. LEASES &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In April 2018, we entered into a 10-year lease agreement for a new 9,000-square-foot facility that contains office, warehouse, lab and research and development space in Frederick, Maryland. The lease agreement commenced in December 2018 when the property was ready for occupancy. The agreement provided for annual rent of $143,460, an escalation clause that increases the rent 3% year over year, a landlord tenant improvement allowance of $405,000 and additional landlord work as discussed in the lease agreement. We took occupancy of the property on December 17, 2018, and the lease was amended in June 2019 to provide for a 4-month rent holiday and a commencement date of April 1, 2019. A 7% discount rate was determined using our incremental borrowing rate based on the information available at adoption date in determining the present value of lease payments. Lease expense for operating lease payments is recognized on a straight-line basis over the lease term. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The balances for our operating lease where we are the lessee are presented as follows within our condensed consolidated balance sheet:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025 &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Operating leases:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Assets:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;"&gt;342,229&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;"&gt;399,254&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Liabilities:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Current Portion of Long-Term Operating Lease&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;139,917&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;129,132&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Long-Term Operating Lease, net of current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;407,781&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;513,395&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Right of Use Liability&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;547,698&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;642,527&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The components of lease expense are as follows and are included within general and administrative expense on our condensed consolidated statement of operations. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating Lease Expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;39,329&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;39,329&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;117,986&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;117,986&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Other information related to leases where we are the lessee is as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025 &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted-average remaining lease term:&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;3.25 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.00 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Discount rate:&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Supplemental cash flow information related to leases where we are the lessee is as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Cash Paid for amounts included in&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;the measurement of lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;42,825&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;41,577&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;126,395&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;123,521&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September&lt;strong&gt; &lt;/strong&gt;30, 2025, the maturities of our operating lease liability are as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Operating&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Lease&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;October&lt;strong&gt; &lt;/strong&gt;1 - December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;42,825&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;175,153&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;180,408&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2028&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;185,820&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2029&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;34,840&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Minimum Lease Payments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;619,046&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Interest&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;71,348&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Imputed value of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;547,698&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;139,917&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Long-term portion of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;407,781&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LeasesOfLesseeDisclosureTextBlock>
    <tomz:TermLease contextRef="From2018-04-01to2018-04-30" id="fid_1340">P10Y</tomz:TermLease>
    <us-gaap:AreaOfLand
      contextRef="AsOf2018-04-30"
      decimals="INF"
      id="fid_1335"
      unitRef="sqft">9000</us-gaap:AreaOfLand>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="From2018-04-01to2018-04-30"
      decimals="0"
      id="fid_1336"
      unitRef="USD">143460</us-gaap:OperatingLeasesRentExpenseNet>
    <tomz:MaximumIncreasesRentPercentage
      contextRef="From2018-04-01to2018-04-30"
      decimals="2"
      id="fid_1337"
      unitRef="Pure">0.03</tomz:MaximumIncreasesRentPercentage>
    <us-gaap:PaymentsForProceedsFromTenantAllowance
      contextRef="From2018-04-01to2018-04-30"
      decimals="0"
      id="fid_1339"
      unitRef="USD">405000</us-gaap:PaymentsForProceedsFromTenantAllowance>
    <us-gaap:WorkersCompensationDiscountPercent
      contextRef="From2018-04-01to2018-04-30"
      decimals="2"
      id="fid_1338"
      unitRef="Pure">0.07</us-gaap:WorkersCompensationDiscountPercent>
    <us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_826">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025 &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Operating leases:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Assets:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Operating lease right-of-use asset&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;"&gt;342,229&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:10%;vertical-align:bottom;text-align:right;"&gt;399,254&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Liabilities:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Current Portion of Long-Term Operating Lease&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;139,917&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;129,132&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Long-Term Operating Lease, net of current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;407,781&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;513,395&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 15px"&gt;Total Right of Use Liability&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;547,698&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;642,527&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1304"
      unitRef="USD">342229</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1305"
      unitRef="USD">399254</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1307"
      unitRef="USD">139917</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1308"
      unitRef="USD">129132</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1309"
      unitRef="USD">407781</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1310"
      unitRef="USD">513395</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1311"
      unitRef="USD">547698</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1312"
      unitRef="USD">642527</us-gaap:OperatingLeaseLiability>
    <us-gaap:LeaseCostTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_827">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating Lease Expense&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;39,329&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;39,329&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;117,986&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;117,986&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1315"
      unitRef="USD">39329</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1316"
      unitRef="USD">39329</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1313"
      unitRef="USD">117986</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1314"
      unitRef="USD">117986</us-gaap:OperatingLeaseExpense>
    <tomz:ScheduleOfOtherInformationRelatedToLeasesTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_828">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025 &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Weighted-average remaining lease term:&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;3.25 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.00 years&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Discount rate:&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Operating leases&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;7.00&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:ScheduleOfOtherInformationRelatedToLeasesTableTextBlock>
    <tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm contextRef="From2025-01-01to2025-09-30" id="fid_1317">P3Y3M</tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm>
    <tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm contextRef="From2024-01-01to2024-12-31" id="fid_1318">P4Y</tomz:OperatingLeaseWeightedAveragesRemainingLeaseTerm>
    <us-gaap:LesseeOperatingLeaseDiscountRate
      contextRef="AsOf2025-09-30"
      decimals="2"
      id="fid_1320"
      unitRef="Pure">0.0700</us-gaap:LesseeOperatingLeaseDiscountRate>
    <us-gaap:LesseeOperatingLeaseDiscountRate
      contextRef="AsOf2024-12-31"
      decimals="2"
      id="fid_1319"
      unitRef="Pure">0.0700</us-gaap:LesseeOperatingLeaseDiscountRate>
    <tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_829">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the three months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;For the nine months ended&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, (Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Cash Paid for amounts included in&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" colspan="2" style="width:9%;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;the measurement of lease liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;42,825&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;41,577&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;126,395&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;123,521&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:SupplementalCashFlowInformationRelatedToLeasesTableTextBlock>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1323"
      unitRef="USD">42825</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1324"
      unitRef="USD">41577</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1321"
      unitRef="USD">126395</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1322"
      unitRef="USD">123521</us-gaap:OperatingLeaseInitialDirectCostExpenseOverTerm>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_830">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Operating&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td style="vertical-align:bottom;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&lt;strong&gt;Year Ended:&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Lease&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;October&lt;strong&gt; &lt;/strong&gt;1 - December 31, 2025&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;42,825&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2026&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;175,153&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2027&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;180,408&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2028&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;185,820&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;December 31, 2029&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;34,840&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total Minimum Lease Payments&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;619,046&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Interest&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;71,348&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Imputed value of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;547,698&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Current portion&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;139,917&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Long-term portion of lease obligations&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;407,781&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1325"
      unitRef="USD">42825</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1326"
      unitRef="USD">175153</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1327"
      unitRef="USD">180408</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1328"
      unitRef="USD">185820</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1334"
      unitRef="USD">34840</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1329"
      unitRef="USD">619046</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1330"
      unitRef="USD">71348</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:CapitalLeaseObligationsCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1331"
      unitRef="USD">547698</us-gaap:CapitalLeaseObligationsCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1332"
      unitRef="USD">139917</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1333"
      unitRef="USD">407781</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <tomz:CloudComputingServiceContractDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_782">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 8. CLOUD COMPUTING SERVICE CONTRACT&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In May 2020, we entered into a cloud computing service contract with a vendor which provided for annual payments in the amount of $30,409 and expired in May 2025. The annual contract payments were capitalized as a prepaid expense and amortized over a twelve-month period.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We incurred implementation costs of $66,857 in connection with the cloud computing service contract which were capitalized in prepaid expenses and other assets as of December 31, 2024. In accordance with ASU No. 2018-15, such implementation costs were amortized over the remaining contract terms beginning January 1, 2021, which was when the cloud-based service contract was placed in service. Amortization expense for the three and nine months ended September 30, 2025, were $0 and $7,436, respectively. Amortization expense for the three and nine months ended September 30, 2024, were $3,766 and $11,297, respectively.&lt;/p&gt;</tomz:CloudComputingServiceContractDisclosureTextBlock>
    <tomz:ProceedsFromServiceContractOfReceivables
      contextRef="From2020-05-01to2020-05-31"
      decimals="0"
      id="fid_1341"
      unitRef="USD">30409</tomz:ProceedsFromServiceContractOfReceivables>
    <tomz:AnnualPaymentsOnContractExpired contextRef="From2020-05-01to2020-05-31" id="fid_1344">May 2025</tomz:AnnualPaymentsOnContractExpired>
    <us-gaap:PrepaidExpenseAndOtherAssets
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1342"
      unitRef="USD">66857</us-gaap:PrepaidExpenseAndOtherAssets>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1346"
      unitRef="USD">0</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1343"
      unitRef="USD">7436</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1347"
      unitRef="USD">3766</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldAmortization
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1345"
      unitRef="USD">11297</us-gaap:CostOfGoodsAndServicesSoldAmortization>
    <us-gaap:DebtDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_783">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 9. CONVERTIBLE DEBT&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In October and November 2023, we entered into a Securities Purchase Agreement (the &#x201c;SPA&#x201d;) with certain accredited investors (collectively, the &#x201c;Investors&#x201d;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#x201c;Private Placement&#x201d;) in one or more closings up to an aggregate principal amount of $5,000,000 of Convertible Notes (the &#x201c;Notes&#x201d;). In October and November 2023, we sold and issued an aggregate of $2,600,000 of Notes that are convertible into 2,080,000 shares of common stock at a conversion price of $1.25 per share.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The Notes mature and are due on the fifth anniversary of the issuance date in October and November of 2028. The Notes bear simple interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible into shares of our Common Stock, at the option of the holder, at an initial conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#x201c;fundamental change&#x201d; occurs (as defined in the Securities Purchase Agreement). The Notes are unsecured and senior to other indebtedness subject to certain exceptions. During the three and nine months ended September 30, 2025, interest expense related to these Notes was recorded on a straight-line basis which totaled $78,000 and $234,000, respectively. During the three and nine months ended September 30, 2024, interest expense related to these Notes was recorded on a straight-line basis which totaled $78,000 and $234,000, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;During the nine months ended September 30, 2025, we entered into Securities Purchase Agreements (the &#x201c;SPA&#x201d;) with certain accredited investors (collectively, the &#x201c;Investors&#x201d;) pursuant to which we agreed to sell and issue to the Investors in a private placement transaction (the &#x201c;Private Placement&#x201d;) in one or more closings up to an aggregate principal amount of $3,000,000 (the &#x201c;Notes&#x201d;). Pursuant to the SPA and as of September 30, 2025, we sold and issued convertible promissory notes (the &#x201c;Notes&#x201d;) to purchase an aggregate of 428,000 shares of common stock at the conversion price of $1.25 per share in exchange for aggregate gross proceeds of $535,000.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The Notes mature and are due on the fifth anniversary of the issuance date in 2030. The Notes bear simple interest at a rate of 12% per annum, payable in equal monthly installments. The Notes are convertible into shares of our Common Stock, at the option of the holder, at a conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#x201c;fundamental change&#x201d; occurs (as defined in the Securities Purchase Agreement). The Notes are unsecured and senior to other indebtedness subject to certain exceptions. Interest expense related to these Notes for the three and nine months ended September 30, 2025, was $15,550 and $28,625, respectively.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Amortization of deferred financing costs were $18,323 and $52,617 for the three and nine months ended September 30, 2025, respectively which has been included with interest expense on the statement of operations. Amortization of deferred financing costs were $15,620 and $46,860 for the three and nine months ended September 30, 2024, respectively which has been included with interest expense on the statement of operations. Additions to deferred financing costs totaled $54,058 during the nine months ended September 30, 2025, and are being amortized on a straight-line basis over the life of the notes.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Convertible notes consist of the following at:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Notes&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,135,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;2,600,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;(366,456&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;(312,398&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accumulated amortization&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;125,509&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;72,892&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Notes, net&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,894,053&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,360,494&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:InvestmentOwnedBalancePrincipalAmount
      contextRef="AsOf2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1357"
      unitRef="USD">5000000</us-gaap:InvestmentOwnedBalancePrincipalAmount>
    <tomz:ProceedsFromConvertiblePromissoryNotesIssuance
      contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1371"
      unitRef="USD">2600000</tomz:ProceedsFromConvertiblePromissoryNotesIssuance>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities
      contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1372"
      unitRef="Shares">2080000</us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities>
    <us-gaap:SharesIssuedPricePerShare
      contextRef="AsOf2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="INF"
      id="fid_1361"
      unitRef="USDPShares">1.25</us-gaap:SharesIssuedPricePerShare>
    <us-gaap:DebtInstrumentInterestRateDuringPeriod
      contextRef="From2023-10-01to2023-11-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="2"
      id="fid_1364"
      unitRef="Pure">0.12</us-gaap:DebtInstrumentInterestRateDuringPeriod>
    <tomz:DescriptionOfConvertibleNote
      contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      id="fid_1369">The Notes are convertible into shares of our Common Stock, at the option of the holder, at an initial conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#x201c;fundamental change&#x201d; occurs (as defined in the Securities Purchase Agreement)</tomz:DescriptionOfConvertibleNote>
    <us-gaap:InterestExpenseDebt
      contextRef="From2025-07-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1566"
      unitRef="USD">78000</us-gaap:InterestExpenseDebt>
    <us-gaap:InterestExpenseDebt
      contextRef="From2025-01-01to2025-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1362"
      unitRef="USD">234000</us-gaap:InterestExpenseDebt>
    <us-gaap:InterestExpenseDebt
      contextRef="From2024-07-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1567"
      unitRef="USD">78000</us-gaap:InterestExpenseDebt>
    <us-gaap:InterestExpenseDebt
      contextRef="From2024-01-01to2024-09-30_tomz_OctoberandNovemberTwoThousandTwentyThreeMember"
      decimals="0"
      id="fid_1363"
      unitRef="USD">234000</us-gaap:InterestExpenseDebt>
    <us-gaap:InvestmentOwnedBalancePrincipalAmount
      contextRef="AsOf2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="0"
      id="fid_1360"
      unitRef="USD">3000000</us-gaap:InvestmentOwnedBalancePrincipalAmount>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities
      contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="0"
      id="fid_1373"
      unitRef="Shares">428000</us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities>
    <us-gaap:SharesIssuedPricePerShare
      contextRef="AsOf2023-11-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="INF"
      id="fid_1365"
      unitRef="USDPShares">1.25</us-gaap:SharesIssuedPricePerShare>
    <tomz:ProceedsFromConvertiblePromissoryNotesIssuance
      contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="0"
      id="fid_1370"
      unitRef="USD">535000</tomz:ProceedsFromConvertiblePromissoryNotesIssuance>
    <us-gaap:DebtInstrumentInterestRateDuringPeriod
      contextRef="From2023-10-01to2023-11-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="2"
      id="fid_1367"
      unitRef="Pure">0.12</us-gaap:DebtInstrumentInterestRateDuringPeriod>
    <tomz:DescriptionOfConvertibleNote
      contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"
      id="fid_1368">The Notes are convertible into shares of our Common Stock, at the option of the holder, at a conversion price of $1.25 per share, which shall not exceed $1.55 per share. In addition, we can require Investors to convert the Notes at the then current conversion price at any time after 90 days from the issue date if the Common Stock has a closing bid price of $1.55 per share or higher on any twenty (20) days within a thirty (30) day period of consecutive trading days, or if a &#x201c;fundamental change&#x201d; occurs (as defined in the Securities Purchase Agreement)</tomz:DescriptionOfConvertibleNote>
    <us-gaap:InterestExpenseDebt
      contextRef="From2025-07-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="0"
      id="fid_1568"
      unitRef="USD">15550</us-gaap:InterestExpenseDebt>
    <us-gaap:InterestExpenseDebt
      contextRef="From2025-01-01to2025-09-30_tomz_JuneTwoThousandTwentyFiveMember"
      decimals="0"
      id="fid_1366"
      unitRef="USD">28625</us-gaap:InterestExpenseDebt>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="From2025-07-01to2025-09-30"
      decimals="0"
      id="fid_1376"
      unitRef="USD">18323</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1358"
      unitRef="USD">52617</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="From2024-07-01to2024-09-30"
      decimals="0"
      id="fid_1377"
      unitRef="USD">15620</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="From2024-01-01to2024-09-30"
      decimals="0"
      id="fid_1359"
      unitRef="USD">46860</us-gaap:AmortizationOfFinancingCosts>
    <tomz:AmortizationOfFinancingCostsAdditions
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1374"
      unitRef="USD">54058</tomz:AmortizationOfFinancingCostsAdditions>
    <us-gaap:ConvertibleDebtTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_831">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Notes&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;3,135,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;2,600,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Less: Debt issuance costs&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;(366,456&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;(312,398&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accumulated amortization&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;125,509&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;72,892&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Convertible Notes, net&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,894,053&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,360,494&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ConvertibleDebtTableTextBlock>
    <tomz:ConvertibleNotesPayableGross
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1349"
      unitRef="USD">3135000</tomz:ConvertibleNotesPayableGross>
    <tomz:ConvertibleNotesPayableGross
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1350"
      unitRef="USD">2600000</tomz:ConvertibleNotesPayableGross>
    <us-gaap:DebtIssuanceCostsLineOfCreditArrangementsNet
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1351"
      unitRef="USD">366456</us-gaap:DebtIssuanceCostsLineOfCreditArrangementsNet>
    <us-gaap:DebtIssuanceCostsLineOfCreditArrangementsNet
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1352"
      unitRef="USD">312398</us-gaap:DebtIssuanceCostsLineOfCreditArrangementsNet>
    <us-gaap:GroundLeasesAccumulatedAmortization
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1353"
      unitRef="USD">125509</us-gaap:GroundLeasesAccumulatedAmortization>
    <us-gaap:GroundLeasesAccumulatedAmortization
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1354"
      unitRef="USD">72892</us-gaap:GroundLeasesAccumulatedAmortization>
    <us-gaap:ConvertibleNotesPayable
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1355"
      unitRef="USD">2894053</us-gaap:ConvertibleNotesPayable>
    <us-gaap:ConvertibleNotesPayable
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1356"
      unitRef="USD">2360494</us-gaap:ConvertibleNotesPayable>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_784">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 10. SHAREHOLDERS&#x2019; EQUITY&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our Board of Directors (the &#x201c;Board&#x201d;) may, without further action by our shareholders, from time to time, direct the issuance of any authorized but unissued or unreserved shares of preferred stock in series and at the time of issuance, determine the rights, preferences and limitations of each series. The holders of such preferred stock may be entitled to receive a preference payment in the event of any liquidation, dissolution or winding up by us before any payment is made to the holders of our Common Stock. Furthermore, the Board could issue preferred stock with voting and other rights that could adversely affect the voting power of the holders of our Common Stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Convertible Series A Preferred Stock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our authorized Convertible Series A Preferred Stock, $0.01 par value, consists of 1,000,000 shares. At September&lt;strong&gt; &lt;/strong&gt;30, 2025, and December 31, 2024, there were 63,750 shares issued and outstanding. The Convertible Series A Preferred Stock is convertible at the rate of one share of common stock for one share of Convertible Series A Preferred Stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Convertible Series B Preferred Stock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our authorized Convertible Series B Preferred Stock, $1,000 stated value, 7.5% cumulative dividend, consists of 4,000 shares. At September&lt;strong&gt; &lt;/strong&gt;30, 2025, and December 31, 2024, there were no shares issued and outstanding. Each share of Convertible Series B Preferred Stock may be converted (at the holder&#x2019;s election) into two hundred shares of our Common Stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Common Stock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In May 2024, we issued 60,000 shares of Common Stock valued at approximately $45,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In May 2025, we issued 60,000 shares of Common Stock valued at approximately $51,000 to members of our Board pursuant to our equity plan (see Note 12).&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Stock Options&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In May 2024, we issued options to purchase 225,000 shares of Common Stock to Officers at an exercise price of $0.75 per share pursuant to an employment agreement. The options were valued at $144,308 and have a contractual term of 10 years. We utilized the Black-Scholes model to fair value the options received by Officers with the following assumptions: volatility, 125%; expected dividend yield, 0%; risk free interest rate, 4.35%; and a contractual term of 10 years. The grant date fair value of each share of Common Stock underlying the options was $0.64.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The following table summarizes stock options outstanding as of September&lt;strong&gt; &lt;/strong&gt;30, 2025, and December 31, 2024:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, &lt;/strong&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;805,042&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.23&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;617,542&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.38&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;225,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;0.75&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(31,250&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;0.88&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(36,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(1.04&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(6,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1.24&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;805,042&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1.23&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Options outstanding and exercisable by price range as of September&lt;strong&gt; &lt;/strong&gt;30, 2025, were as follows:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining &lt;/strong&gt;&lt;strong&gt;Contractual&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted &lt;/strong&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.71&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;7,042&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;2.31&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;7,042&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;0.71&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.75&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;225,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;8.63&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;225,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.32&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.85&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;210,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.33&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;210,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.85&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.12&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6.30&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.93&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.21&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.93&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.40&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.34&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.40&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;7.06&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;0.01&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;7.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;6.81&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;1.24&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Stock Warrants&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The following table summarizes the outstanding common stock warrants as of September&lt;strong&gt; &lt;/strong&gt;30, 2025 and December 31, 2024:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, 2025 &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,765,846&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.26&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,772,096&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.25&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(161,458&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(1.19&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(6,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(1.12&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.32&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,765,846&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.26&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Warrants outstanding and exercisable by price range as of September&lt;strong&gt; &lt;/strong&gt;30, 2025, were as follows:&lt;strong&gt;&#160;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;strong&gt;Average Weighted&lt;/strong&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining Contractual&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.64&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;8.14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;0.64&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;8.33&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.96&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;437,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.23&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;437,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.96&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.68&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.99&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.68&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;2.18&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.99&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.18&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.00&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.57&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.00&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;6.95&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;5.01&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;6.95&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;3.10&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2.32&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;There were no unvested warrants outstanding as of September&lt;strong&gt; &lt;/strong&gt;30, 2025.&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="INF"
      id="fid_1496"
      unitRef="USDPShares">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1484"
      unitRef="Shares">1000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="AsOf2025-09-30_us-gaap_SeriesAPreferredStockMember"
      decimals="0"
      id="fid_1486"
      unitRef="Shares">63750</us-gaap:PreferredStockSharesIssued>
    <tomz:CumulativeConvertiblePreferredStockStatedValue
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_1490"
      unitRef="USD">1000</tomz:CumulativeConvertiblePreferredStockStatedValue>
    <tomz:CumulativeDividendOfPreferredStock
      contextRef="From2025-01-01to2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="3"
      id="fid_1498"
      unitRef="Pure">0.075</tomz:CumulativeDividendOfPreferredStock>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="AsOf2025-09-30_us-gaap_SeriesBPreferredStockMember"
      decimals="0"
      id="fid_1482"
      unitRef="Shares">4000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFourMember"
      decimals="0"
      id="fid_1501"
      unitRef="Shares">60000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:CommonStockValue
      contextRef="AsOf2025-09-30_tomz_MayTwentyTwentyFourMember"
      decimals="0"
      id="fid_1500"
      unitRef="USD">45000</us-gaap:CommonStockValue>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="From2025-01-01to2025-09-30_tomz_MayTwentyTwentyFiveMember"
      decimals="0"
      id="fid_1499"
      unitRef="Shares">60000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:CommonStockValue
      contextRef="AsOf2025-09-30_tomz_MayTwentyTwentyFiveMember"
      decimals="0"
      id="fid_1502"
      unitRef="USD">51000</us-gaap:CommonStockValue>
    <tomz:WarrantsIssuedUponPurchaseShareOfCommonStock
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="0"
      id="fid_1503"
      unitRef="Shares">225000</tomz:WarrantsIssuedUponPurchaseShareOfCommonStock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="AsOf2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="INF"
      id="fid_1504"
      unitRef="USDPShares">0.75</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="0"
      id="fid_1505"
      unitRef="USD">144308</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      id="fid_1506">P10Y</us-gaap:DeferredCompensationArrangementWithIndividualMaximumContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="2"
      id="fid_1507"
      unitRef="Pure">1.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="0"
      id="fid_1508"
      unitRef="Pure">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="4"
      id="fid_1509"
      unitRef="Pure">0.0435</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      id="fid_1510">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <tomz:GrantFairValueOfPerShare
      contextRef="From2024-05-01to2024-05-31_tomz_MayTwentyTwentyFourMember"
      decimals="INF"
      id="fid_1511"
      unitRef="USDPShares">0.64</tomz:GrantFairValueOfPerShare>
    <us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_832">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, &lt;/strong&gt;&lt;strong&gt;2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;strong&gt;December 31, &lt;/strong&gt;&lt;strong&gt;2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;805,042&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.23&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;617,542&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;1.38&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;225,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;0.75&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;(31,250&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;0.88&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(36,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(1.04&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(6,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1.24&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;805,042&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;1.23&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2024-12-31_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1379"
      unitRef="Shares">805042</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2024-12-31_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1386"
      unitRef="USDPShares">1.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2023-12-31_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1378"
      unitRef="Shares">617542</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2023-12-31_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1385"
      unitRef="USDPShares">1.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1387"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1380"
      unitRef="Shares">225000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1388"
      unitRef="USDPShares">0.75</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1389"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1394"
      unitRef="Shares">31250</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1390"
      unitRef="USDPShares">0.88</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1382"
      unitRef="Shares">36250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <tomz:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice
      contextRef="From2025-01-01to2025-09-30_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1391"
      unitRef="USDPShares">-1.04</tomz:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1383"
      unitRef="Shares">6250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <tomz:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice
      contextRef="From2024-01-01to2024-12-31_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1392"
      unitRef="USDPShares">0.80</tomz:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1395"
      unitRef="Shares">768792</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1396"
      unitRef="USDPShares">1.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2024-12-31_us-gaap_StockOptionMember"
      decimals="0"
      id="fid_1384"
      unitRef="Shares">805042</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2024-12-31_us-gaap_StockOptionMember"
      decimals="INF"
      id="fid_1393"
      unitRef="USDPShares">1.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_833">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Options&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining &lt;/strong&gt;&lt;strong&gt;Contractual&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2"&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted &lt;/strong&gt;&lt;strong&gt;Average&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Range&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.71&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;7,042&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;2.31&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;7,042&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;0.71&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.75&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;225,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;8.63&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;225,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.75&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.32&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.85&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;210,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.33&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;210,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.85&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.12&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;6.30&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;270,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.12&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.93&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.21&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;10,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.93&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.40&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.34&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;12,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.40&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;7.06&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;0.01&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;7.06&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;6.81&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;768,792&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: black 3px double;vertical-align:bottom;text-align:right;"&gt;1.24&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAndExercisableTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember"
      decimals="0"
      id="fid_1398"
      unitRef="Shares">7042</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenOneMember"
      id="fid_1406">P2Y3M21D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember"
      decimals="0"
      id="fid_1414"
      unitRef="Shares">7042</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenOneMember"
      decimals="INF"
      id="fid_1422"
      unitRef="USDPShares">0.71</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember"
      decimals="0"
      id="fid_1399"
      unitRef="Shares">225000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointSevenFiveMember"
      id="fid_1407">P8Y7M17D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember"
      decimals="0"
      id="fid_1415"
      unitRef="Shares">225000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointSevenFiveMember"
      decimals="INF"
      id="fid_1423"
      unitRef="USDPShares">0.75</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember"
      decimals="0"
      id="fid_1400"
      unitRef="Shares">2500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightZeroMember"
      id="fid_1408">P2Y3M25D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember"
      decimals="0"
      id="fid_1416"
      unitRef="Shares">2500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightZeroMember"
      decimals="INF"
      id="fid_1424"
      unitRef="USDPShares">0.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember"
      decimals="0"
      id="fid_1401"
      unitRef="Shares">210000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeZeroPointEightFiveMember"
      id="fid_1409">P7Y3M29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember"
      decimals="0"
      id="fid_1417"
      unitRef="Shares">210000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeZeroPointEightFiveMember"
      decimals="INF"
      id="fid_1425"
      unitRef="USDPShares">0.85</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember"
      decimals="0"
      id="fid_1402"
      unitRef="Shares">270000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeOnePointOneTwoMember"
      id="fid_1410">P6Y3M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember"
      decimals="0"
      id="fid_1418"
      unitRef="Shares">270000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeOnePointOneTwoMember"
      decimals="INF"
      id="fid_1426"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember"
      decimals="0"
      id="fid_1403"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeOnePointNineThreeMember"
      id="fid_1411">P1Y2M15D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember"
      decimals="0"
      id="fid_1419"
      unitRef="Shares">10500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeOnePointNineThreeMember"
      decimals="INF"
      id="fid_1427"
      unitRef="USDPShares">1.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember"
      decimals="0"
      id="fid_1404"
      unitRef="Shares">12500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeFourPointFourZeroMember"
      id="fid_1412">P0Y4M2D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember"
      decimals="0"
      id="fid_1420"
      unitRef="Shares">12500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeFourPointFourZeroMember"
      decimals="INF"
      id="fid_1428"
      unitRef="USDPShares">4.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember"
      decimals="0"
      id="fid_1405"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_RangeSevenPointZeroSixMember"
      id="fid_1413">P0Y3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember"
      decimals="0"
      id="fid_1421"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_RangeSevenPointZeroSixMember"
      decimals="INF"
      id="fid_1429"
      unitRef="USDPShares">7.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1433"
      unitRef="Shares">768792</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="From2025-01-01to2025-09-30" id="fid_1432">P6Y9M21D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1431"
      unitRef="Shares">768792</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30"
      decimals="INF"
      id="fid_1430"
      unitRef="USDPShares">1.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_834">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, 2025 &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number of Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, beginning of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,765,846&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.26&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2,772,096&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;2.25&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Granted &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Exercised &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;"&gt;-&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Expired&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(161,458&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(1.19&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(6,250&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"&gt;(1.12&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Outstanding, end of period&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.32&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2,765,846&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"&gt;2.26&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2024-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1435"
      unitRef="Shares">2765846</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2024-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1440"
      unitRef="USDPShares">2.26</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2023-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1434"
      unitRef="Shares">2772096</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2023-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1439"
      unitRef="USDPShares">2.25</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1441"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1442"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1443"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1444"
      unitRef="USDPShares">0</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember"
      decimals="0"
      id="fid_1436"
      unitRef="Shares">161458</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1445"
      unitRef="USDPShares">1.19</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
      contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1437"
      unitRef="Shares">6250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="From2024-01-01to2024-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1446"
      unitRef="USDPShares">1.12</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsMember"
      decimals="0"
      id="fid_1448"
      unitRef="Shares">2604388</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1449"
      unitRef="USDPShares">2.32</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2024-12-31_tomz_WarrantsMember"
      decimals="0"
      id="fid_1438"
      unitRef="Shares">2765846</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="AsOf2024-12-31_tomz_WarrantsMember"
      decimals="INF"
      id="fid_1447"
      unitRef="USDPShares">2.26</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <tomz:ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_835">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Outstanding Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="vertical-align:bottom;text-align:center;"&gt;&lt;strong&gt;Average Weighted&lt;/strong&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="6" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercisable Warrants&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px"&gt;&lt;td colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Remaining Contractual&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Life in Years&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Weighted Average&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;Exercise Price&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.64&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;8.14&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;31,250&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:17%;vertical-align:bottom;text-align:right;"&gt;0.64&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.80&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;8.33&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.80&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;0.96&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;437,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;7.23&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;437,500&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.96&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;1.68&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.99&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1,434,721&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;1.68&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;2.18&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;0.99&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;172,167&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2.18&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;4.00&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.57&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;28,750&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;4.00&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:right;"&gt;6.95&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;5.01&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;375,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;6.95&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;3.10&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2,604,388&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;2.32&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</tomz:ScheduleOfWarrantsOutstandingAndExercisableByPriceRangeTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1450"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember"
      id="fid_1474">P8Y1M20D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1458"
      unitRef="Shares">31250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsOneMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1466"
      unitRef="USDPShares">0.64</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1451"
      unitRef="Shares">125000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember"
      id="fid_1475">P8Y3M29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1459"
      unitRef="Shares">125000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsTwoMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1467"
      unitRef="USDPShares">0.80</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1452"
      unitRef="Shares">437500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember"
      id="fid_1476">P7Y2M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1460"
      unitRef="Shares">437500</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsThreeMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1468"
      unitRef="USDPShares">0.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1453"
      unitRef="Shares">1434721</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember"
      id="fid_1478">P0Y11M26D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1461"
      unitRef="Shares">1434721</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsSevenMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1469"
      unitRef="USDPShares">1.68</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1454"
      unitRef="Shares">172167</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember"
      id="fid_1477">P0Y11M26D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1462"
      unitRef="Shares">172167</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsEightMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1470"
      unitRef="USDPShares">2.18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1455"
      unitRef="Shares">28750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember"
      id="fid_1479">P4Y6M25D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1463"
      unitRef="Shares">28750</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsTenMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1471"
      unitRef="USDPShares">4.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1456"
      unitRef="Shares">375000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember"
      id="fid_1480">P5Y3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1464"
      unitRef="Shares">375000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_WarrantsElevenMember_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1472"
      unitRef="USDPShares">6.95</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber
      contextRef="AsOf2025-09-30_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1457"
      unitRef="Shares">2604388</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsOutstandingNumber>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="From2025-01-01to2025-09-30_tomz_StockWarrantsMember"
      id="fid_1481">P3Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="AsOf2025-09-30_tomz_StockWarrantsMember"
      decimals="0"
      id="fid_1465"
      unitRef="Shares">2604388</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="AsOf2025-09-30_tomz_StockWarrantsMember"
      decimals="INF"
      id="fid_1473"
      unitRef="USDPShares">2.32</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_785">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 11. COMMITMENTS AND CONTINGENCIES&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Legal Contingencies&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;We may become a party to litigation in the normal course of business.&#160;In the opinion of management, there are no legal matters involving us that would have a material adverse effect upon our financial condition, results of operations or cash flows. In addition, from time to time, we may have to file claims against parties that infringe on our intellectual property.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Product Liability&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September&lt;strong&gt; &lt;/strong&gt;30, 2025, and December 31, 2024, there were no claims against us for product liability.&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <tomz:ContractsAndAgreementsTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_786">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 12. CONTRACTS AND AGREEMENTS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Employment Agreement &#x2013; Chief Financial Officer&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;On May 30, 2025, the Board of Directors of the Company appointed Mr. David Vanston as the Company&#x2019;s Chief Financial Officer, effective immediately. The appointment was made following the expiration of Mr. Nick Jennings&#x2019;s offer letter to serve as the Interim Chief Financial Officer, as previously disclosed by the Company. &#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;In connection with his appointment, the Company entered into an offer letter with Mr. Vanston providing for an annual base salary of $230,000 and eligibility to receive an annual discretionary bonus of up to 40% of his base salary. Mr. Vanston is also entitled to receive an initial grant of 100,000 restricted stock units and an additional grant of 100,000 restricted stock units following one year of employment, each subject to a three-year vesting schedule. &lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;&lt;em&gt;Director Compensation&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The annual fee to the non-employees of our Board was $48,000, to be paid in cash on a quarterly basis, with the exception of the audit committee chairperson, whose annual fee was $54,600, also to be paid in cash on a quarterly basis. Non-employee Director compensation also includes the annual issuance of our Common Stock.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;During October 2025, the Company revised its director compensation (Refer to Note 19 &#x2013; Subsequent events).&lt;/p&gt;</tomz:ContractsAndAgreementsTextBlock>
    <us-gaap:SalariesAndWages
      contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember"
      decimals="0"
      id="fid_1571"
      unitRef="USD">230000</us-gaap:SalariesAndWages>
    <tomz:DiscretionaryBonus
      contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember"
      decimals="1"
      id="fid_1572"
      unitRef="Pure">0.40</tomz:DiscretionaryBonus>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross
      contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember"
      decimals="0"
      id="fid_1573"
      unitRef="Shares">100000</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardGross>
    <tomz:AdditionalRestrictedStockGranted
      contextRef="From2025-05-01to2025-05-30_tomz_MrVanstonMember"
      decimals="0"
      id="fid_1574"
      unitRef="Shares">100000</tomz:AdditionalRestrictedStockGranted>
    <us-gaap:SalariesAndWages
      contextRef="From2025-01-01to2025-09-30_tomz_ExecutiveAgreementsWithElissaJShaneMember"
      decimals="0"
      id="fid_1569"
      unitRef="USD">48000</us-gaap:SalariesAndWages>
    <us-gaap:PaymentForManagementFee
      contextRef="From2025-01-01to2025-09-30_tomz_CommitteeChairpersonMember"
      decimals="0"
      id="fid_1570"
      unitRef="USD">54600</us-gaap:PaymentForManagementFee>
    <us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_787">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 13. ACCRUED EXPENSES AND OTHER CURRENT LIABILITIES &lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;Accrued expenses and other current liabilities consisted of the following at:&lt;/p&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:45px"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Commissions&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;178,932&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;187,151&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Payroll and related costs &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;488,968&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,773&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Director fees&#160;&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;37,650&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;37,650&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Sales Tax Payable&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,575&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3,864&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued warranty (Note 14)&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;22,648&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other accrued expenses and current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;97,950&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;71,237&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;828,723&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;455,675&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_836">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: #000000 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September 30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Commissions&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;178,932&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;187,151&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Payroll and related costs &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;488,968&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;125,773&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Director fees&#160;&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;37,650&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;37,650&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Sales Tax Payable&#160;&#160; &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;2,575&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;3,864&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Accrued warranty (Note 14)&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;22,648&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Other accrued expenses and current liabilities&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;97,950&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;71,237&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Total &lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;828,723&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;455,675&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1519"
      unitRef="USD">178932</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1518"
      unitRef="USD">187151</us-gaap:EmployeeRelatedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1521"
      unitRef="USD">488968</us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent>
    <us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1520"
      unitRef="USD">125773</us-gaap:AccruedPayrollTaxesCurrentAndNoncurrent>
    <tomz:DirectorFeesCurrentAndNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1522"
      unitRef="USD">37650</tomz:DirectorFeesCurrentAndNoncurrent>
    <tomz:DirectorFeesCurrentAndNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1523"
      unitRef="USD">37650</tomz:DirectorFeesCurrentAndNoncurrent>
    <tomz:SalesTaxPayable
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1525"
      unitRef="USD">2575</tomz:SalesTaxPayable>
    <tomz:SalesTaxPayable
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1524"
      unitRef="USD">3864</tomz:SalesTaxPayable>
    <us-gaap:ExtendedProductWarrantyAccrualCurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1527"
      unitRef="USD">22648</us-gaap:ExtendedProductWarrantyAccrualCurrent>
    <us-gaap:ExtendedProductWarrantyAccrualCurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1526"
      unitRef="USD">30000</us-gaap:ExtendedProductWarrantyAccrualCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1529"
      unitRef="USD">97950</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1528"
      unitRef="USD">71237</us-gaap:OtherAccruedLiabilitiesCurrentAndNoncurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1531"
      unitRef="USD">828723</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1530"
      unitRef="USD">455675</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:ProductWarrantyDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_788">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 14. ACCRUED WARRANTY&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our manufacturers assume the warranty against product defects from date of sale, which we extend to our customers upon sale of the product. We assume responsibility for product reliability and results. The warranty is generally limited to a refund of the original purchase price of the product or a replacement part. We estimate warranty costs based on historical warranty claim experience.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The following table presents warranty reserve activities at:&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Beginning accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Provision for warranty expense&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;15,637&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;9,707&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Settlement of warranty claims&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(22,989&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(9,707&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Ending accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;22,648&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ProductWarrantyDisclosureTextBlock>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_837">&lt;table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"&gt;&lt;tbody&gt;&lt;tr style="height:15px"&gt;&lt;td&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;September &lt;/strong&gt;&lt;strong&gt;30, 2025&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;&#160;(Unaudited)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:center;"&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"&gt;&lt;strong&gt;December 31, 2024&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Beginning accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="width:1%;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="width:10%;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="width:1%;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Provision for warranty expense&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;15,637&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="vertical-align:bottom;text-align:right;"&gt;9,707&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#cceeff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Settlement of warranty claims&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(22,989&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 1px solid;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 1px solid;vertical-align:bottom;text-align:right;"&gt;(9,707&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 1px;vertical-align:bottom;white-space: nowrap;"&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15px;background-color:#ffffff"&gt;&lt;td style="vertical-align:top;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;Ending accrued warranty costs&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;22,648&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;td style="BORDER-BOTTOM: 3px double;vertical-align:bottom;white-space: nowrap;"&gt;$&lt;/td&gt;&lt;td class="ffcell" style="BORDER-BOTTOM: 3px double;vertical-align:bottom;text-align:right;"&gt;30,000&lt;/td&gt;&lt;td style="PADDING-BOTTOM: 3px;white-space: nowrap;"&gt;&lt;p style="font-size:10pt;font-family:times new roman;margin:0px"&gt;&#160;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1533"
      unitRef="USD">30000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2023-12-31"
      decimals="0"
      id="fid_1532"
      unitRef="USD">30000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1535"
      unitRef="USD">15637</us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease>
    <us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="fid_1534"
      unitRef="USD">9707</us-gaap:ProductWarrantyAccrualPeriodIncreaseDecrease>
    <tomz:SettlementOfWarrantyClaims
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1537"
      unitRef="USD">22989</tomz:SettlementOfWarrantyClaims>
    <tomz:SettlementOfWarrantyClaims
      contextRef="From2024-01-01to2024-12-31"
      decimals="0"
      id="fid_1536"
      unitRef="USD">9707</tomz:SettlementOfWarrantyClaims>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1538"
      unitRef="USD">22648</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:ExtendedProductWarrantyAccrual
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1539"
      unitRef="USD">30000</us-gaap:ExtendedProductWarrantyAccrual>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_789">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 15. INCOME TAXES&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the three and nine months ended September 30, 2025, and 2024, our provision for income tax was $0. Deferred income tax assets and liabilities are determined based on differences between the financial statement reporting and tax bases of assets and liabilities and are measured using the enacted tax rates and laws in effect when the differences are expected to reverse. The measurement of deferred income tax assets is reduced, if necessary, by a valuation allowance for any tax benefits, which are, on a more likely than not basis, not expected to be realized in accordance with FASB ASC Topic 740, Income Taxes. As of September 30, 2025, and December 31, 2024, we recorded a valuation allowance of $9,223,000 and $8,678,000, respectively for the portion of the deferred tax assets that we do not expect to be realized. Management believes that based on the available information, it is more likely than not that the remaining U.S. deferred tax assets will not be realized, such that a 100% valuation allowance is required against U.S. deferred tax assets.&lt;/p&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="AsOf2025-09-30"
      decimals="0"
      id="fid_1542"
      unitRef="USD">9223000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="AsOf2024-12-31"
      decimals="0"
      id="fid_1540"
      unitRef="USD">8678000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <tomz:USDeferredTaxAssetsValuationAllowanceDescription contextRef="From2025-01-01to2025-09-30" id="fid_1541">it is more likely than not that the remaining U.S. deferred tax assets will not be realized, such that a 100% valuation allowance is required against U.S. deferred tax assets</tomz:USDeferredTaxAssetsValuationAllowanceDescription>
    <us-gaap:ConcentrationRiskDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_790">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 16. CUSTOMER CONCENTRATION&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The Company had certain customers whose accounts receivable balances individually represented 10% or more of the Company&#x2019;s accounts receivable, and whose sales for the three and nine months represented 10% or more of the Company&#x2019;s revenue.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;One customer accounted for 23% of net revenue for the three months ended September 30, 2025. Two customers accounted for 12% of net revenue for the three months ended September 30, 2024.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;One customer accounted for 12% of net revenue for the nine months ended September 30, 2025. One customer accounted for 18% of net revenue for the nine months ended September 30, 2024.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;As of September 30, 2025, two customers accounted for 40% of our gross accounts receivable. As of December 31, 2024, two customers accounted for 25% of our gross accounts receivable.&lt;/p&gt;</us-gaap:ConcentrationRiskDisclosureTextBlock>
    <tomz:RevenueConcentrationRiskPercentage
      contextRef="From2025-01-01to2025-09-30"
      decimals="1"
      id="fid_1578"
      unitRef="Pure">0.10</tomz:RevenueConcentrationRiskPercentage>
    <tomz:RevenueConcentrationRiskPercentage
      contextRef="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember"
      decimals="1"
      id="fid_1576"
      unitRef="Pure">0.10</tomz:RevenueConcentrationRiskPercentage>
    <tomz:AccountsReceivableConcentrationRiskPercentage
      contextRef="From2025-07-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="fid_1582"
      unitRef="Pure">0.23</tomz:AccountsReceivableConcentrationRiskPercentage>
    <tomz:AccountsReceivableConcentrationRiskPercentage
      contextRef="From2024-07-01to2024-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="fid_1583"
      unitRef="Pure">0.12</tomz:AccountsReceivableConcentrationRiskPercentage>
    <tomz:AccountsReceivableConcentrationRiskPercentage
      contextRef="From2025-01-01to2025-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="fid_1580"
      unitRef="Pure">0.12</tomz:AccountsReceivableConcentrationRiskPercentage>
    <tomz:AccountsReceivableConcentrationRiskPercentage
      contextRef="From2024-01-01to2024-09-30_tomz_CustomerListsOneMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="fid_1923"
      unitRef="Pure">0.18</tomz:AccountsReceivableConcentrationRiskPercentage>
    <tomz:AccountsReceivableConcentrationRiskPercentage
      contextRef="From2025-01-01to2025-09-30_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember"
      decimals="1"
      id="fid_1581"
      unitRef="Pure">0.40</tomz:AccountsReceivableConcentrationRiskPercentage>
    <tomz:AccountsReceivableConcentrationRiskPercentage
      contextRef="From2024-01-01to2024-12-31_tomz_TwoCustomersMember_us-gaap_AccountsReceivableMember"
      decimals="2"
      id="fid_1575"
      unitRef="Pure">0.25</tomz:AccountsReceivableConcentrationRiskPercentage>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_791">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 17. SEGMENT REPORTING&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our Chief Executive Officer, as the CODM, organizes our Company, manages resource allocations and measures performance among one operating and reportable segment due to the fact that we derive our revenue primarily from one product (equipment and service revenue based on our patented BIT technology). A breakdown of revenue is presented in &#x201c;Revenue Recognition&#x201d; in Note 2 above. We evaluated the aggregation criteria in ASC 280-10-50-11 which states that aggregation can be considered if segments are similar in certain areas, including the nature of products and services, production processes, type of class of customer, and future economic performance.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Our CODM is regularly provided with more detailed expense information than what is included in our consolidated income statement. The CODM considers monthly budgets and cash flow projections, gross margins for each project, and our consolidated net income (loss) as reported on the income statement when allocating resources and assessing our performance. We are required to apply the guidance in ASC 280 and identify significant segment expenses and other segment items for our single reportable segment.&lt;/p&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <tomz:EmployeeRetentionCreditsDisclosureTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_793">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 18. EMPLOYEE RETENTION CREDITS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;During the nine months ended September 30, 2025, the Company recorded refunds as a result of Employee Retention Credits (ERC), which are refundable tax credits against certain employment taxes initially made available under the Coronavirus Aid, Relief, and Economic Security Act (the &#x201c;CARES&#x201d; Act). In accordance with the Company&#x2019;s accounting policy, the ERC payments have been recognized as Other Income as the Company determined that all relevant criteria for recognition had been met. The ERC represents a one-time benefit and does not constitute recurring operational revenue.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;For the nine months ended September 30, 2025, we recorded $534,912 in employee retention credits and $81,887 related interest within other income and interest income, respectively, in our consolidated statement of operations. This consists of refund claims filed on amended Forms 941-X for the second, third and fourth quarters of 2020, and the first two quarters of 2021.&lt;/p&gt;</tomz:EmployeeRetentionCreditsDisclosureTextBlock>
    <us-gaap:OtherIncome
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1551"
      unitRef="USD">534912</us-gaap:OtherIncome>
    <us-gaap:InterestIncomeOther
      contextRef="From2025-01-01to2025-09-30"
      decimals="0"
      id="fid_1553"
      unitRef="USD">81887</us-gaap:InterestIncomeOther>
    <us-gaap:SubsequentEventsTextBlock contextRef="From2025-01-01to2025-09-30" id="fid_792">&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&lt;strong&gt;NOTE 19. SUBSEQUENT EVENTS&lt;/strong&gt;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;During October 2025, the Compensation Committee approved a change to our director compensation whereby each non-employee director of the Board will be granted 40,000 RSUs effective as of the date of the 2025 Annual Meeting of Stockholders (the &#x201c;RSU grant&#x201d;); the non-employee directors are entitled to receive one share of Common Stock for each RSU upon vesting; and the RSU grant will vest in full upon the earlier of (i) the first anniversary of the date of grant and (ii) immediately prior to the annual meeting of shareholders that occurs following the date of grant, subject to the non-employee director&#x2019;s continued service to the Company through such vesting date. In addition, director fees are now reduced to $5,000 per quarter, commencing in the fourth quarter of fiscal year 2025.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;During October 2025, the Committee also approved the grant to our CFO of an award of 100,000 RSUs under the Plan, with such RSUs to vest over the next 3 years, subject to his continued service with the Company through each applicable vesting date.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;On November 5, 2025, we entered into an Equity Purchase Agreement (the &#x201c;Purchase Agreement&#x201d;) with Hudson Global Ventures, LLC (&#x201c;Hudson&#x201d;), pursuant to which and upon the terms and subject to the conditions set forth therein, the Company has the right, but not the obligation, to sell to Hudson up to $20,000,000 of shares of its common stock, par value $0.01 per share (the &#x201c;Common Stock&#x201d;), from time to time over a 24-month period (the &#x201c;Commitment Period&#x201d;). Concurrently with entering into the Purchase Agreement, the Company also entered into a Registration Rights Agreement (the &#x201c;Registration Rights Agreement&#x201d;) with Hudson, pursuant to which the Company agreed to register the issuances and sales of shares of Common Stock under the Purchase Agreement, the Registrable Securities (as defined in the Registration Rights Agreement), pursuant to a registration statement to be filed under the Securities Act of 1933, as amended.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;At any time and from time to time during the Commitment Period, on any business day selected by the Company, the Company may direct Hudson to purchase shares of its Common Stock by delivering a written notice (a &#x201c;Put Notice&#x201d;). The purchase price per share for each purchase of shares subject to a Put Notice will be equal to the lesser of (i) 92% of the average of the three lowest trading prices of the Common Stock on the Nasdaq Capital Market during the ten trading days immediately preceding the Put Date and (ii) 92% of the lowest closing price of the Common Stock during the Valuation Period as defined in the Purchase Agreement.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;Under applicable Nasdaq rules, the Company may not issue or sell to Hudson under the Purchase Agreement shares of Common Stock in excess of 19.99% of the shares of Common Stock outstanding immediately prior to the execution of the Purchase Agreement (the &#x201c;Exchange Cap&#x201d;) without first obtaining stockholder approval as required by Nasdaq Rule 5635(d). The Company is not obligated to sell any shares to Hudson under the Purchase Agreement, and Hudson is not obligated to purchase any shares that would exceed the Exchange Cap. Pursuant to the Purchase Agreement, the Company agrees to issue 52,000 shares of Common Stock to Hudson as Commitment Shares in consideration for Hudson&#x2019;s commitment to enter into the transaction.&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"&gt;&#160;&lt;/p&gt;&lt;p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; TEXT-INDENT: 45px; text-align:justify;"&gt;The Purchase Agreement contains customary representations, warranties, covenants, and closing conditions. The Company may terminate the Purchase Agreement at any time by written notice to Hudson, subject to certain limitations.&lt;/p&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember"
      decimals="0"
      id="fid_1584"
      unitRef="Shares">40000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <tomz:DescriptionOfVestingRestricatedStockUnits
      contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember"
      id="fid_1591">the RSU grant will vest in full upon the earlier of (i) the first anniversary of the date of grant and (ii) immediately prior to the annual meeting of shareholders that occurs following the date of grant, subject to the non-employee director&#x2019;s continued service to the Company through such vesting date</tomz:DescriptionOfVestingRestricatedStockUnits>
    <tomz:DirectorFees
      contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_tomz_NonEmployeeDirectorMember"
      decimals="0"
      id="fid_1585"
      unitRef="USD">5000</tomz:DirectorFees>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      decimals="0"
      id="fid_1586"
      unitRef="Shares">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="From2025-10-01to2025-10-31_us-gaap_SubsequentEventMember_srt_ChiefFinancialOfficerMember"
      id="fid_1587">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <tomz:EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock
      contextRef="From2025-11-01to2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember"
      decimals="0"
      id="fid_1588"
      unitRef="USD">20000000</tomz:EquityLineOfCreditMaximumAmountAvailableForSaleOfCommonStock>
    <us-gaap:CommonStockNoParValue
      contextRef="AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember"
      decimals="INF"
      id="fid_1589"
      unitRef="USDPShares">0.01</us-gaap:CommonStockNoParValue>
    <tomz:ExcessInCommonStockPercentage
      contextRef="From2025-11-01to2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember"
      decimals="4"
      id="fid_1592"
      unitRef="Pure">0.1999</tomz:ExcessInCommonStockPercentage>
    <tomz:CommonStockIsuable
      contextRef="AsOf2025-11-05_us-gaap_SubsequentEventMember_tomz_EquityPurchaseAgreementMember"
      decimals="0"
      id="fid_1590"
      unitRef="Shares">52000</tomz:CommonStockIsuable>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
